Repository navigation
feat(eui-neo): add 0.6.1 - #531
Merged
Merged
Conversation
CORE_SOURCES and VULKAN_SOURCES are byte-identical to 0.6.0 (extracted and
diffed from both CMakeLists.txt), so the lib's source list, deps, features
and flags carry over unchanged. The release is window lifecycle, Linux
input and component fixes; three of its pieces deserve notes:
* core/window/x11_moveresize.h is new but header-only: libX11 is
dlopen'd at runtime (no link-time X11 dependency), yet its compile-time
<X11/Xlib.h> now reaches the linux window_backend.cpp TU through the
transitive compat.glfw -> compat.x11 chain — verified in the emitted
compile_commands.json, no direct dep added.
* ime_bridge.c's new EUI_GLFW_X11_IME_POSITION arm (X11 IME caret fix)
calls glfwSetX11InputMethodCursorPos, a function upstream's
scripts/patch_glfw_x11_ime.cmake adds to its BUNDLED glfw.
compat.glfw is unpatched upstream 3.4, so the arm is inert here; the
linux IME keeps the 0.6.0 stub.
* The one real descriptor change, found by testing: in the SDL2 backend,
beginWindowMove/beginWindowResize call sendX11MoveResizeForWindow
UNGUARDED, but the SDL2 branch's declaration sits INSIDE
`#if __linux__ && ... && defined(SDL_VIDEO_DRIVER_X11)`
(window_backend.cpp:223) — unlike the GLFW branch's copy (:608), which
upstream hoisted out of the guard with its own `#else return false`.
Three builds fail (all measured): linux + compat.sdl2 (dummy+offscreen
config, macro absent — local run), macOS and Windows (`__linux__` false,
so NO macro can wake the declaration — both PR CI legs; upstream's own
CI builds the SDL2 backend on Linux only). The fix is one
package-private shim in the force-included mcpp_eui_backends.h, split
by platform: on linux define SDL_VIDEO_DRIVER_X11 for this package's
own TUs, waking the guarded block (it can never fire at runtime —
compat.sdl2 has no X11 driver, so every delegation returns false,
upstream's "unavailable -> report failure" contract); elsewhere supply
the core::window stub the GLFW branch and upstream's release notes both
describe ("on non-X11 platforms the delegation returns false and
callers keep their programmatic fallback"). Neither half may become an
interface define: consumers would inherit the lie on every platform.
No CN mirror yet (never published to mcpp-res); plain-string GLOBAL url
fallback per cn-mirror.md SOP. sha256 computed twice from the tag tarball.
All seven workspace members bumped to 0.6.1 and verified locally with
mcpp 2026.10.1.2 (same as CI MCPP_VERSION): index lint clean; eui-neo,
eui-neo-window, eui-neo-app-main, eui-neo-markdown, eui-neo-sdl2,
eui-neo-vulkan, eui-neo-tray all pass — the sdl2 member failed before the
shim and passes after it, which is the shim's measured evidence; the stub
branch is additionally syntax-checked against the exact upstream call-site
pattern, and its authoritative verification is the PR's macOS/Windows legs.
FarnaHerry
force-pushed
the
feat/eui-neo-0.6.1
branch
from
October 14, 2026 03:17
b20bf79 to
a0c9187
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #473 (0.6.0). Upstream released v0.6.1; this bumps the index from 0.6.0 to 0.6.1. Design doc:
.agents/docs/2026-10-14-bump-eui-neo-0.6.1-plan.md.Source
archive/refs/tags/v0.6.1.tar.gzcd0bd6bd437177db097da146fc20f4b8b01c70d0db561a6f8e26baa26dbbbf5f(computed twice, stable)mcpp-reswrite access; plain-string GLOBAL url fallback per cn-mirror.md SOPWhat changed upstream (0.6.0 → 0.6.1)
CORE_SOURCES/VULKAN_SOURCESbyte-identical to 0.6.0 (extracted and diffed from bothCMakeLists.txt) — no source-list, dep, feature or flag changes.core/window/x11_moveresize.his new but header-only (EWMH_NET_WM_MOVERESIZE; libX11 dlopen'd at runtime, no link-time X11 dependency). Its compile-time<X11/Xlib.h>reaches the linuxwindow_backend.cppTU through the transitivecompat.glfw → compat.x11chain — verified in the emittedcompile_commands.json.ime_bridge.c's newEUI_GLFW_X11_IME_POSITIONarm (X11 IME caret fix) callsglfwSetX11InputMethodCursorPos, a function upstream'spatch_glfw_x11_ime.cmakeadds to its bundled glfw.compat.glfwis unpatched upstream 3.4, so the arm is inert here; the linux IME keeps the 0.6.0 stub.The one real descriptor change (found by testing, twice)
In the SDL2 backend,
beginWindowMove/beginWindowResizecallsendX11MoveResizeForWindowunguarded, but the SDL2 branch's declaration sits inside#if __linux__ && … && defined(SDL_VIDEO_DRIVER_X11)(window_backend.cpp:223) — unlike the GLFW branch's copy (:608), which upstream hoisted out of the guard with its own#else return false. Three builds fail, all measured:'sendX11MoveResizeForWindow' was not declaredat :571.use of undeclared identifierat :567/:571.__linux__is false there, so NO macro can wake the declaration; it does not exist at all. Upstream's own CI builds the SDL2 backend on Linux only and never sees this.Fix: one package-private shim in the force-included
mcpp_eui_backends.h, split by platform, active only with thesdl2feature:#define SDL_VIDEO_DRIVER_X11 1for this package's own TUs wakes the guarded block. It can never fire at runtime (compat.sdl2 has no X11 driver, so no SDL window is ever an X11 window and every delegation returns false — upstream's "unavailable → report failure" contract).core::windowstubsendX11MoveResizeForWindow(void*, int)returning false — the fallback upstream's GLFW branch and its own release notes describe ("on non-X11 platforms the delegation returns false and callers keep their programmatic fallback").Handleisvoid*in the SDL2 branch, so the signature matches the call sites exactly; the real definition is linux-only, so no redefinition.Neither half may become an interface define — consumers would inherit the lie on every platform.
Verification
Locally with mcpp 2026.10.1.2 (same as CI
MCPP_VERSION), Linux x86_64,MCPP_INDEX_MIRROR=GLOBAL:check_*suite +mcpp xpkg parse).mcpp testgreen:eui-neo,eui-neo-window,eui-neo-app-main,eui-neo-markdown,eui-neo-sdl2(sdl2+network),eui-neo-vulkan,eui-neo-tray. The sdl2 member failed before the shim and passes after it — the shim's measured evidence.