.goreleaser.yaml RawHistoryFolder
1# Builds the GitHub release for a pushed v* tag (.github/workflows/release.yml)
2# and generates the neferwl-bin PKGBUILD. The workflow verifies that PKGBUILD
3# with makepkg before it pushes it to the AUR, so GoReleaser never uploads it.
4version: 2
5
6project_name: neferwl
7
8before:
9 hooks:
10 - go mod verify
11
12builds:
13 - id: neferwl
14 main: ./cmd/neferwl
15 binary: neferwl
16 env:
17 - CGO_ENABLED=0
18 goos: [linux]
19 goarch: [amd64, arm64]
20 flags:
21 - -trimpath
22 - -buildmode=pie
23 ldflags:
24 - -s -w -X main.version={{ .Version }}
25 # Same inputs give the same binary.
26 mod_timestamp: "{{ .CommitTimestamp }}"
27
28archives:
29 - id: neferwl
30 ids: [neferwl]
31 name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
32 formats: [tar.gz]
33 # Everything the PKGBUILD package() installs, at the paths of the repo.
34 files:
35 - LICENSE
36 - README.md
37 - examples/config
38 - examples/capture-allow
39 - packaging/neferwl-session
40 - packaging/neferwl.service
41 - packaging/neferwl-shutdown.target
42 - packaging/neferwl.desktop
43 - packaging/neferwl-portals.conf
44
45checksum:
46 name_template: checksums.txt
47 algorithm: sha256
48
49snapshot:
50 version_template: "{{ incpatch .Version }}-next"
51
52git:
53 tag_sort: -version:refname
54
55changelog:
56 sort: asc
57 use: github
58 filters:
59 exclude:
60 - "^style(\\([^)]+\\))?:"
61 - "^test(\\([^)]+\\))?:"
62 groups:
63 - title: Added
64 regexp: "^feat(\\([^)]+\\))?!?:"
65 order: 0
66 - title: Fixed
67 regexp: "^fix(\\([^)]+\\))?!?:"
68 order: 1
69 - title: Performance
70 regexp: "^perf(\\([^)]+\\))?!?:"
71 order: 2
72 - title: Changed
73 regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
74 order: 3
75 - title: Documentation
76 regexp: "^docs(\\([^)]+\\))?!?:"
77 order: 4
78 - title: Maintenance
79 regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
80 order: 5
81 - title: Other changes
82 order: 999
83
84release:
85 github:
86 owner: bnema
87 name: neferwl
88 draft: false
89 prerelease: auto
90 mode: replace
91 header: |
92 ## NeferWL {{ .Tag }}
93
94 ### Install on Arch Linux
95
96 ```sh
97 paru -S neferwl-bin # this release, pre-built (x86_64, aarch64)
98 paru -S neferwl-git # latest main, built from source
99 ```
100
101 ### Install the pre-built archive
102
103 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
104
105 ```sh
106 gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt
107 sha256sum -c --ignore-missing checksums.txt
108 gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl
109 ```
110
111 The archive holds the `neferwl` binary, the session files from `packaging/` and `examples/config`. See the [README](https://github.com/bnema/neferwl#readme) for runtime dependencies and the session setup.
112 footer: |
113 ---
114
115 **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }}
116
117aurs:
118 - name: neferwl-bin
119 ids: [neferwl]
120 homepage: https://github.com/bnema/neferwl
121 description: Minimal Wayland compositor with column tiling, for the TTY
122 maintainers:
123 - "bnema <b at bnema dot dev>"
124 license: GPL-3.0-only
125 # The release workflow verifies and publishes the generated PKGBUILD.
126 skip_upload: true
127 # publish.sh ships the file next to the PKGBUILD.
128 install: ./packaging/neferwl.install
129 provides: [neferwl]
130 conflicts: [neferwl, neferwl-git]
131 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
132 depends:
133 - glibc
134 - libinput
135 - libxkbcommon
136 - seatd
137 - systemd-libs
138 - vulkan-icd-loader
139 - vulkan-driver
140 - wayland
141 - dbus
142 - libcap
143 optdepends:
144 - "xwayland-satellite>=0.7: X11 apps"
145 - "foot: default terminal"
146 - "fuzzel: launcher"
147 - "xdg-desktop-portal-gtk: file pickers and settings for apps"
148 - "xdg-desktop-portal-wlr: screen sharing and screenshots through the portal"
149 - "nefercap: screenshots and screen recording"
150 package: |-
151 install -Dm755 ./neferwl "${pkgdir}/usr/bin/neferwl"
152 install -Dm755 ./packaging/neferwl-session "${pkgdir}/usr/bin/neferwl-session"
153 install -Dm644 ./packaging/neferwl.service "${pkgdir}/usr/lib/systemd/user/neferwl.service"
154 install -Dm644 ./packaging/neferwl-shutdown.target "${pkgdir}/usr/lib/systemd/user/neferwl-shutdown.target"
155 install -Dm644 ./packaging/neferwl.desktop "${pkgdir}/usr/share/wayland-sessions/neferwl.desktop"
156 install -Dm644 ./packaging/neferwl-portals.conf "${pkgdir}/usr/share/xdg-desktop-portal/neferwl-portals.conf"
157 install -Dm644 ./examples/config "${pkgdir}/usr/share/doc/neferwl/config.example"
158 install -Dm644 ./examples/capture-allow "${pkgdir}/usr/share/doc/neferwl/capture-allow.example"
159 install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferwl/README.md"
160 install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"