Skip to content

feat(eui-neo): add 0.6.3 - #804

Merged
Sunrisepeak merged 2 commits into
mcpplibs:mainfrom
FarnaHerry:feat/eui-neo-0.6.3
Nov 15, 2026
Merged

Sunrisepeak merged 2 commits into
mcpplibs:mainfrom
FarnaHerry:feat/eui-neo-0.6.3

Conversation

@FarnaHerry

Copy link
Copy Markdown
Collaborator

Bumps compat.eui-neo 0.6.2 → 0.6.3 (upstream release 2026-11-12). Design doc: .agents/docs/2026-11-15-bump-eui-neo-0.6.3-plan.md.

Shape

Unchanged (Form B, header compat, import_std = false). CORE_SOURCES and VULKAN_SOURCES are byte-identical to 0.6.2 — extracted and diffed from both CMakeLists.txt. The new headers (core/accessibility.h, include/eui/accessibility.h) are header-only and re-exported by include/eui_neo.h; the EUI_* build-macro set is identical between 0.6.1 and 0.6.3.

Descriptor changes

Change Why
["0.6.3"] on linux/macosx/windows, plain-string GLOBAL url No CN mirror (no mcpp-res access here); sha256 08074e2f…b669 computed twice from two fresh downloads
Windows ldflags + -luuid platform.cpp's new directory picker (IFileOpenDialog, SHCreateItemFromParsingName); upstream's 0.6.3 link line grew ole32 comdlg32 uuid. ABI-safe, no ABI change
New serial feature (*/modules/serial/serial.cpp) modules/serial is upstream's first optional module with a TU, built as eui::module_serial outside CORE_SOURCES. modules/keyboard is header-only, no entry needed

The SDL2 sendX11MoveResizeForWindow shim is untouched: 0.6.3 keeps 0.6.2's hoisted definition (#endif position diffed), so the template stub stays inert on non-linux.

Test members

  • Seven existing tests/examples/eui-neo* members bumped 0.6.2 → 0.6.3.
  • New tests/examples/eui-neo-serial (registered in the workspace): link-time assertion that SerialPort comes from the feature's TU, plus hardware-free runtime assertions (open of a nonexistent device fails and leaves the port closed; move leaves the source closed).

Verification

Local Linux x86_64 with mcpp 2026.11.15.1 (the CI MCPP_VERSION), MCPP_INDEX_MIRROR=GLOBAL, each member cold:

eui-neo            test result ok   (parsed eui-neo v3, markdown gated off)
eui-neo-window     test result ok   (own main, window run opt-in)
eui-neo-app-main   test result ok   (package-supplied main() linked)
eui-neo-markdown   test result ok   (2 blocks, h1)
eui-neo-tray       test result ok   (linux SNI over a private session bus)
eui-neo-vulkan     test result ok   (backend=vulkan, loader api 1.4.357)
eui-neo-sdl2       test result ok   (SDL driver=dummy, curl 8.21.0-DEV)
eui-neo-serial     test result ok   (feature on: link + runtime assertions)

Negative check for the feature: with features = ["serial"] removed, the cold build fails at link with undefined reference to 'core::serial::SerialPort::SerialPort()' (and open/isOpen/move ctor/close/dtor); restoring it returns test result ok.

Lint (check_mirror_urls, check_package_name, check_reserved_namespace, check_cross_package_refs, check_platform_version_parity, check_duplicate_versions) clean; mcpp xpkg parse OK, features 7.

macOS/Windows are CI-authoritative here: they are the legs that exercise -luuid and serial.cpp's windows.h/termios branches.

CORE_SOURCES and VULKAN_SOURCES are byte-identical to 0.6.2 (extracted and
diffed from both CMakeLists.txt), so the lib's source list and features carry
over unchanged. The release is keyboard navigation + accessibility snapshots,
virtualized dataTable, system save/directory dialogs, input undo budgets and
line-chart sampling. Two things a bump has to follow:

  * platform.cpp's new directory picker uses IFileOpenDialog +
    SHCreateItemFromParsingName, so upstream's Windows link line grew
    ole32 comdlg32 uuid. ole32/comdlg32 were already named here from the
    0.6.1 CI work; this adds -luuid (the IID_/CLSID_ GUIDs). The
    linux/macOS implementations shell out to zenity/kdialog/osascript, so
    neither leg gains a link-time dependency.
  * modules/serial is upstream's first optional module WITH a TU
    (serial.cpp, built as eui::module_serial outside CORE_SOURCES). It is
    exposed as the `serial` feature, source-gated like app-main;
    modules/keyboard is header-only and needs no entry. New member
    tests/examples/eui-neo-serial asserts it at link time (SerialPort
    ctor/dtor/open/isOpen) and runtime (a device path that cannot exist
    must fail and leave the port closed, move leaves the source closed).
    Negative check: dropping the feature fails the cold link with
    'undefined reference to core::serial::SerialPort::SerialPort()' and
    the rest of the class.

The SDL2 branch keeps 0.6.2's hoisted sendX11MoveResizeForWindow definition
(#endif position unchanged, diffed), so the package-private template stub in
mcpp_eui_backends.h stays inert on non-linux and the descriptor's linux
SDL_VIDEO_DRIVER_X11 define stays a practical no-op: no shim change.

sha256 verified twice (two fresh downloads). No CN mirror yet -- plain-string
GLOBAL url per SOP; the seven existing members' pins raised 0.6.2 -> 0.6.3
and eui-neo-serial registered in the workspace.

Verified locally with mcpp 2026.11.15.1 (the CI MCPP_VERSION), every member
cold: eui-neo, -window, -app-main, -markdown, -tray, -vulkan, -sdl2 and
-serial all 'test result ok'. Index lint clean; `mcpp xpkg parse` OK
(features 7). macOS/Windows legs remain CI-authoritative for -luuid and
serial.cpp's windows.h/termios branches.
All legs green on PR mcpplibs#804 (run 43730038159): lint, select, build, scan,
mirror-cn-reachable, graphics side effects, workspace linux default +
llvm 0-3/4, macOS and Windows, plus the compat:eui-neo 0.6.3 candidate
install/build legs on all three platforms.
@Sunrisepeak
Sunrisepeak merged commit 91c0bbb into mcpplibs:main Nov 15, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants