Example in
https://github.com/i3/i3/actions/runs/18260895234/job/51988635887?pr=6502
`i3-log-for-124-move.t`:
```
../libi3/font.c:332:9: runtime error: signed integer overflow: 2147483641 + 11 cannot be represented in type 'int'
#0 0x5611ce962d65 in draw_text_xcb ../libi3/font.c:332
#1 0x5611ce962d65 in draw_text ../libi3/font.c:376
#2 0x5611ce95de20 in draw_util_text ../libi3/draw_util.c:219
#3 0x5611ce947e7a in x_draw_decoration ../src/x.c:751
#4 0x5611ce94f93a in x_push_node ../src/x.c:1097
#5 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#6 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#7 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#8 0x5611ce952e9b in x_push_changes ../src/x.c:1373
#9 0x5611ce922d1f in tree_render ../src/tree.c:468
#10 0x5611ce8d1bbb in handle_run_command ../src/ipc.c:220
#11 0x5611ce8c87fe in ipc_receive_message ../src/ipc.c:1481
#12 0x7effc262b64a in ev_invoke_pending (/lib/x86_64-linux-gnu/libev.so.4+0x564a) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323)
#13 0x7effc262f22e in ev_run (/lib/x86_64-linux-gnu/libev.so.4+0x922e) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323)
#14 0x5611ce809d48 in ev_loop /usr/include/ev.h:841
#15 0x5611ce809d48 in main ../src/main.c:1229
#16 0x7effc1e41ca7 (/lib/x86_64-linux-gnu/libc.so.6+0x29ca7) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8)
#17 0x7effc1e41d64 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29d64) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8)
#18 0x5611ce80e770 in _start (/usr/src/i3/build/i3+0x230770) (BuildId: 181abde9a3dd28a8a4be68b90b9b710c8e280633)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../libi3/font.c:332:9
```
Unrelated but I fixed the build fails in `next` because of a
false-positive:
```
In file included from ../include/all.h:40,
from ../src/commands.c:10:
../src/commands.c: In function ‘cmd_floating’:
../include/log.h:30:33: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
30 | #define DLOG(fmt, ...) debuglog("%s:%s:%d - " fmt, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
| ^~~~~~~~~~~~~
../src/commands.c:1193:13: note: in expansion of macro ‘DLOG’
1193 | DLOG("should switch mode to %s\n", floating_mode);
| ^~~~
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.
```
They are newly failing since the previous commit (upgrading to Ubuntu focal),
so instead of debugging what the issue is, let’s just remove them entirely.
Not many i386 users are left, as the world is on amd64 and arm64 these days.
This requires --buildtype=debugoptimized (or --buildtype=release, but
optimizations need to be enabled), and will allow us to keep the i3 build free
of warnings during development.
Distributions like Debian build with -D_FORTIFY_SOURCE=2.
Originally I thought we should remove the build and test steps in favor of the
“meson dist” step. But, then we lose verbose build command lines and access
to the test logs, and having the failing test logs readily available is
critical.
So, instead, let’s make the “meson dist” step not repeat the work that was
already done in earlier steps. The Meson manual even documents the --no-tests
flag precisely for our use case:
> The meson dist command has a --no-tests option to skip build and tests steps
> of generated packages. It can be used to not waste time for example when done
> in CI that already does its own testing.
From https://mesonbuild.com/Creating-releases.html
fixes https://github.com/i3/i3/issues/5145
Benefits:
- Faster feedback in case of error
- More checks run in parallel
- Removes stuff from Dockerfiles
- Uses newest available clang-format (in ubuntu repos)
* Add RELEASE-NOTES template for next
The placeholder items are useful instead of having to find the •
character for every new release.
Closes#4040
* Remove leftover bugfix release notes from tree