From 1d8fcb8594d1f351e867040353a7050a53bc6e99 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Fri, 19 Dec 2025 08:19:53 +0100 Subject: [PATCH 1/2] release i3 4.25 --- RELEASE-NOTES-4.24 | 62 ---------------------------------------------- RELEASE-NOTES-4.25 | 49 ++++++++++++++++++++++++++++++++++++ meson.build | 4 +-- 3 files changed, 51 insertions(+), 64 deletions(-) delete mode 100644 RELEASE-NOTES-4.24 create mode 100644 RELEASE-NOTES-4.25 diff --git a/RELEASE-NOTES-4.24 b/RELEASE-NOTES-4.24 deleted file mode 100644 index 9e67d533..00000000 --- a/RELEASE-NOTES-4.24 +++ /dev/null @@ -1,62 +0,0 @@ - - ┌──────────────────────────────┐ - │ Release notes for i3 v4.24 │ - └──────────────────────────────┘ - -This is i3 v4.24. This version is considered stable. All users of i3 are -strongly encouraged to upgrade. - -Aside from a number of bug fixes and detail improvements, the tiling drag -feature has been extended to allow swapping containers with the mouse. -See the swap_modifier in the userguide: -https://i3wm.org/docs/userguide.html - - ┌────────────────────────────┐ - │ Changes in i3 v4.24 │ - └────────────────────────────┘ - - • docs/userguide: add note to default_border about title bar in stacked/tabbed - • docs/userguide: fix focus output next example - • docs/hacking-howto: update build instructions - • docs/testsuite: update instructions - • docs/ipc: update section on IPC socket location - • docs/ipc: describe workspace events in more detail - • i3-sensible-terminal: add rio - • i3bar: use short-form text on a per-block basis - • reap zombie children when starting - • do not grab mouse pointer when executing bindings - • tiling drag: swap containers with the mouse - • disable automatic v3-to-v4 migration script - • pass _NET_WM_STATE_MAXIMIZED_{HORZ, VERT} (fixes tab bar in Google Chrome) - • avoid creating redundant containers when switching between layouts - • deprecate smart_borders in favour of hide_edge_borders smart/smart_no_gaps - • float windows of type _NET_WM_WINDOW_TYPE_NOTIFICATION by default - • add “popup_during_fullscreen all” - • mark fullscreen windows as maximized - • support multiple _NET_WM_STATE changes in one ClientMessage - • fix size_t format specifiers on 32-bit systems - - ┌────────────────────────────┐ - │ Bugfixes │ - └────────────────────────────┘ - - • i3bar: fix clicks when horizontal padding is used - • consider workspace_auto_back_and_forth in focus workspace - • workspace next/prev: do not skip identically numbered workspaces - • make order of numbered workspace consistent with non-numbered - • fix crash with focus output and command criteria matching scratchpad window - • fix crash when reloading config with invalid criteria - • fix error log related crash - - ┌────────────────────────────┐ - │ Thanks! │ - └────────────────────────────┘ - -Thanks for testing, bugfixes, discussions and everything I forgot go out to: - - a-kenji, Alessandro Vinciguerra, Bimba Laszlo, colona_, Eddie Lebow, Harimbola - Santatra, Junicchi, Malix, Nikolay Nechaev, Orestis Floros, rsgowman, - sethpollen, Seth Pollen, systec-awe, Tasos Sahanidis, Theo Buehler, Wesley - Schwengle, Yonas Yanfa, yuvallangerontheroad - --- Michael Stapelberg, 2024-11-06 diff --git a/RELEASE-NOTES-4.25 b/RELEASE-NOTES-4.25 new file mode 100644 index 00000000..c65b9254 --- /dev/null +++ b/RELEASE-NOTES-4.25 @@ -0,0 +1,49 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.25 │ + └──────────────────────────────┘ + +This is i3 v4.25. This version is considered stable. All users of i3 are +strongly encouraged to upgrade. + +Most changes in this release cycle have been “behind the scenes”, +without an observable effect for users. For example, we switched +to clang-format-20, fixed a number of (benign) memory issues, +fixed a few flaky tests and maintained our GitHub Actions setup, +e.g. for the shutdown of baltocdn (our old host for nightly builds). + +We also investigated shipping an i3.service systemd user unit, +but could not make that work without breaking existing setups. +If distribution maintainers (or anyone) has advice, please share +(after reading up!) over in https://github.com/i3/i3/issues/5186 + + ┌────────────────────────────┐ + │ Changes in i3 v4.25 │ + └────────────────────────────┘ + + • Set _NET_FRAME_EXTENTS according to the actual decoration size. + This improves compatibility with picom and other software. + • The command parser is now reentrant, which fixes a few + advanced for_window usages (e.g. multiple criteria). + + ┌────────────────────────────┐ + │ Bugfixes │ + └────────────────────────────┘ + + • fix paragraph separators cutting off window titles + • fix crash when a container parent is focused + and a tiling drag causes it to be killed + • fix crash when using for_window [...] reload + • fix append_layout when containers use a mark + • randr: fix memleak and use-after-free + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + Dmitry, Emeric Planet, FedGuy699, Garrett Marcinak, Michele Piazzai, + Orestis Floros, Sergey Vlasov, Vladimir Panteleev, algonell + +-- Michael Stapelberg, 2025-12-19 diff --git a/meson.build b/meson.build index c629413d..8c2b566c 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( 'i3', 'c', - version: '4.24', + version: '4.25', default_options: [ 'c_std=c11', 'warning_level=1', # enable all warnings (-Wall) @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + '-non-git', + fallback: meson.project_version() + ' (2025-12-19)', ) ) From acf73a3378fb4caa0fc9a4a19a5d75d2b72213f6 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Fri, 19 Dec 2025 08:20:07 +0100 Subject: [PATCH 2/2] Restore non-git version suffix --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 8c2b566c..afff3305 100644 --- a/meson.build +++ b/meson.build @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + ' (2025-12-19)', + fallback: meson.project_version() + '-non-git', ) )