.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
45nfpms:
46 - id: neferwl
47 ids: [neferwl]
48 package_name: neferwl
49 file_name_template: "{{ .PackageName }}_{{ .Version }}_{{ .Arch }}"
50 formats: [deb]
51 vendor: bnema
52 homepage: https://github.com/bnema/neferwl
53 maintainer: "bnema <b@bnema.dev>"
54 description: A Wayland compositor that spends its frames on your apps, not on itself
55 license: GPL-3.0-only
56 section: x11
57 bindir: /usr/bin
58 # Loaded at runtime (purego, no cgo): dpkg-shlibdeps cannot see them.
59 dependencies:
60 - libc6
61 - libinput10
62 - libseat1
63 - libudev1
64 - libxkbcommon0
65 - libvulkan1
66 - mesa-vulkan-drivers | vulkan-icd
67 - dbus
68 - libcap2-bin
69 suggests:
70 - xwayland-satellite
71 - foot
72 - fuzzel
73 - xdg-desktop-portal-gtk
74 - xdg-desktop-portal-gnome
75 - pipewire
76 scripts:
77 postinstall: packaging/deb/postinst
78 contents:
79 - src: packaging/neferwl-session
80 dst: /usr/bin/neferwl-session
81 file_info: {mode: 0755}
82 - src: packaging/neferwl.service
83 dst: /usr/lib/systemd/user/neferwl.service
84 - src: packaging/neferwl-shutdown.target
85 dst: /usr/lib/systemd/user/neferwl-shutdown.target
86 - src: packaging/neferwl.desktop
87 dst: /usr/share/wayland-sessions/neferwl.desktop
88 - src: packaging/neferwl-portals.conf
89 dst: /usr/share/xdg-desktop-portal/neferwl-portals.conf
90 - src: examples/config
91 dst: /usr/share/doc/neferwl/config.example
92 - src: examples/capture-allow
93 dst: /usr/share/doc/neferwl/capture-allow.example
94 - src: README.md
95 dst: /usr/share/doc/neferwl/README.md
96 - src: LICENSE
97 dst: /usr/share/doc/neferwl/copyright
98
99checksum:
100 name_template: checksums.txt
101 algorithm: sha256
102
103snapshot:
104 version_template: "{{ incpatch .Version }}-next"
105
106git:
107 tag_sort: -version:refname
108
109changelog:
110 sort: asc
111 use: github
112 filters:
113 exclude:
114 - "^style(\\([^)]+\\))?:"
115 - "^test(\\([^)]+\\))?:"
116 groups:
117 - title: Added
118 regexp: "^feat(\\([^)]+\\))?!?:"
119 order: 0
120 - title: Fixed
121 regexp: "^fix(\\([^)]+\\))?!?:"
122 order: 1
123 - title: Performance
124 regexp: "^perf(\\([^)]+\\))?!?:"
125 order: 2
126 - title: Changed
127 regexp: "^(refactor|build)(\\([^)]+\\))?!?:"
128 order: 3
129 - title: Documentation
130 regexp: "^docs(\\([^)]+\\))?!?:"
131 order: 4
132 - title: Maintenance
133 regexp: "^(chore|ci)(\\([^)]+\\))?!?:"
134 order: 5
135 - title: Other changes
136 order: 999
137
138release:
139 github:
140 owner: bnema
141 name: neferwl
142 draft: false
143 prerelease: auto
144 mode: replace
145 header: |
146 ## NeferWL {{ .Tag }}
147
148 ### Install on Arch Linux
149
150 ```sh
151 paru -S neferwl-bin # this release, pre-built (x86_64, aarch64)
152 paru -S neferwl-git # latest main, built from source
153 ```
154
155 ### Install the pre-built archive
156
157 Linux amd64 and arm64. Replace `amd64` with `arm64` on ARM.
158
159 ```sh
160 gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_linux_amd64.tar.gz' -p checksums.txt
161 sha256sum -c --ignore-missing checksums.txt
162 gh attestation verify neferwl_{{ .Version }}_linux_amd64.tar.gz -R bnema/neferwl
163 ```
164
165 ### Install on Ubuntu 24.04 and 26.04
166
167 Replace `amd64` with `arm64` on ARM.
168
169 ```sh
170 gh release download {{ .Tag }} -R bnema/neferwl -p 'neferwl_{{ .Version }}_amd64.deb' -p checksums.txt
171 sha256sum -c --ignore-missing checksums.txt
172 sudo apt install ./neferwl_{{ .Version }}_amd64.deb
173 ```
174
175 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.
176 footer: |
177 ---
178
179 **Full changelog**: https://github.com/bnema/neferwl/compare/{{ .PreviousTag }}...{{ .Tag }}
180
181aurs:
182 - name: neferwl-bin
183 ids: [neferwl]
184 homepage: https://github.com/bnema/neferwl
185 description: A Wayland compositor that spends its frames on your apps, not on itself
186 maintainers:
187 - "bnema <b at bnema dot dev>"
188 license: GPL-3.0-only
189 # The release workflow verifies and publishes the generated PKGBUILD.
190 skip_upload: true
191 # publish.sh ships the file next to the PKGBUILD.
192 install: ./packaging/neferwl.install
193 provides: [neferwl]
194 conflicts: [neferwl, neferwl-git]
195 # Loaded at runtime (purego, no cgo): not seen by makepkg's library scan.
196 depends:
197 - glibc
198 - libinput
199 - libxkbcommon
200 - seatd
201 - systemd-libs
202 - vulkan-icd-loader
203 - vulkan-driver
204 - wayland
205 - dbus
206 - libcap
207 optdepends:
208 - "xwayland-satellite>=0.7: X11 apps"
209 - "foot: default terminal"
210 - "fuzzel: launcher"
211 - "xdg-desktop-portal-gtk: file pickers and settings for apps"
212 - "xdg-desktop-portal-gnome: screen sharing and screenshots through the portal"
213 - "pipewire: screen sharing streams"
214 - "nefercap: screenshots and screen recording"
215 package: |-
216 install -Dm755 ./neferwl "${pkgdir}/usr/bin/neferwl"
217 install -Dm755 ./packaging/neferwl-session "${pkgdir}/usr/bin/neferwl-session"
218 install -Dm644 ./packaging/neferwl.service "${pkgdir}/usr/lib/systemd/user/neferwl.service"
219 install -Dm644 ./packaging/neferwl-shutdown.target "${pkgdir}/usr/lib/systemd/user/neferwl-shutdown.target"
220 install -Dm644 ./packaging/neferwl.desktop "${pkgdir}/usr/share/wayland-sessions/neferwl.desktop"
221 install -Dm644 ./packaging/neferwl-portals.conf "${pkgdir}/usr/share/xdg-desktop-portal/neferwl-portals.conf"
222 install -Dm644 ./examples/config "${pkgdir}/usr/share/doc/neferwl/config.example"
223 install -Dm644 ./examples/capture-allow "${pkgdir}/usr/share/doc/neferwl/capture-allow.example"
224 install -Dm644 ./README.md "${pkgdir}/usr/share/doc/neferwl/README.md"
225 install -Dm644 ./LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"