diff --git a/.agents/docs/2026-09-04-bump-eui-neo-0.5.9-plan.md b/.agents/docs/2026-09-04-bump-eui-neo-0.5.9-plan.md new file mode 100644 index 0000000..b82cb8b --- /dev/null +++ b/.agents/docs/2026-09-04-bump-eui-neo-0.5.9-plan.md @@ -0,0 +1,49 @@ +# Design doc: bump `compat.eui-neo` to 0.5.9 + +Date: 2026-09-04 + +Follow-up to `.agents/docs/2026-08-10-bump-eui-neo-0.5.6-plan.md` and commit `32de619` (0.5.8). +Upstream released 0.5.9; this bumps the index from 0.5.8 to 0.5.9. + +## Source and version + +| | | +|---|---| +| Upstream | `https://github.com/sudoevolve/EUI-NEO` | +| Version | `0.5.9` (latest release) | +| Tarball | `archive/refs/tags/v0.5.9.tar.gz` | +| sha256 | `370d1da706d94bbbb144fa1634e1d9796a8a1ffd58b696fbb801296aef15703d` (verified twice, stable) | +| Wrap dir | `EUI-NEO-0.5.9/` — absorbed by the standard `*/` glob prefix, no `install()` hook | +| CN mirror | **pending** — no `mcpp-res` write access on this machine; plain-string url fallback per SOP | +| License | Apache-2.0 (unchanged) | + +## What changed upstream (0.5.8 → 0.5.9) + +- `CORE_SOURCES` is **byte-identical** to 0.5.8, so the lib shape and source count (26 sources) remain unchanged. +- Upstream removed xmake integration and the unused `EUI_APP_RUNNER` stub from `eui_neo.h`. +- Hardened render cache optimizations (text batch vertex/flush stats, backdrop blur capture tracking and invalidation, dirty rect pass estimation heuristic). +- Streamlined external CMake app setup via global properties. +- `3rd/` vendored dependencies, dependencies, features, and flags carry over unchanged. +- `-fno-char8_t` remains required as upstream still handles UTF-8 string conversions similarly. + +## Descriptor changes (`pkgs/e/compat.eui-neo.lua`) + +1. `xpm.{linux,macosx,windows}` each gain a `["0.5.9"]` entry (plain-string fallback url, matching 0.5.8). +2. Header comments updated to note v0.5.9 upstream tracking and wrap layer absorption. + +## CN mirror status + +Per `docs/cn-mirror.md` and the SOP, without `mcpp-res` credentials or `gtc`, plain-string GLOBAL upstream URL is used. CI's `check_mirror_urls.lua` exempts plain strings. + +## Test members verification + +All 7 workspace members consuming `compat.eui-neo` were bumped to `0.5.9`: +1. `tests/examples/eui-neo`: passed (`smoke test: ok`, finished in 186.96s) +2. `tests/examples/eui-neo-window`: passed (`compat.eui-neo[own main]: linked`, finished in 167.48s) +3. `tests/examples/eui-neo-app-main`: passed (`compat.eui-neo[app-main]: linked`, finished in 35.38s) +4. `tests/examples/eui-neo-markdown`: passed (`compat.eui-neo[markdown]: ok`, finished in 30.75s) +5. `tests/examples/eui-neo-sdl2`: passed (`compat.eui-neo[sdl2,network]: ok`, finished in 41.40s) +6. `tests/examples/eui-neo-tray`: passed (`linux tray backend verified`, finished in 23.07s) +7. `tests/examples/eui-neo-vulkan`: passed (`compat.eui-neo[vulkan]: ok`, finished in 37.41s) + +Full repo lints (`check_mirror_urls.lua`, `check_package_name.lua`, `check_cross_package_refs.lua`, `check_platform_version_parity.lua`, `check_duplicate_versions.lua`, and `mcpp xpkg parse`) passed with status 0. diff --git a/pkgs/e/compat.eui-neo.lua b/pkgs/e/compat.eui-neo.lua index c3adc2f..ebfe30f 100644 --- a/pkgs/e/compat.eui-neo.lua +++ b/pkgs/e/compat.eui-neo.lua @@ -15,7 +15,7 @@ -- genuinely vendored single-file headers live at its root (stb_image, -- nanosvg, nanosvgrast) and the sources include them as `"3rd/stb_image.h"`. -- --- The build recipe below tracks upstream `CMakeLists.txt` (v0.5.8): CORE_SOURCES +-- The build recipe below tracks upstream `CMakeLists.txt` (v0.5.9): CORE_SOURCES -- plus the OpenGL backend and, for the glfw window backend, `ime_bridge.c`. -- 0.5.5 grew a Shadertoy subsystem: render_backend.h and include/eui/types.h now -- include core/render/shadertoy.h unconditionally, and opengl_backend.cpp calls @@ -48,8 +48,16 @@ -- both app-main TUs' source lists are unchanged, so deps/features/flags all -- carry over. -- +-- 0.5.9: CORE_SOURCES is byte-identical to 0.5.8, so the lib shape does not +-- change. Upstream removes xmake integration and the unused EUI_APP_RUNNER +-- stub from eui_neo.h, hardens render cache optimizations (text batch +-- vertex/flush stats, backdrop blur capture tracking and invalidation, dirty +-- rect pass estimation heuristic), and streamlines external CMake app setup +-- via global properties. 3rd/, dependencies, features, and flags carry over +-- unchanged. +-- -- All `mcpp` paths are GLOBS relative to the verdir; the leading `*/` absorbs --- the GitHub tarball's `EUI-NEO-0.5.8/` wrap layer. +-- the GitHub tarball's `EUI-NEO-0.5.9/` wrap layer. package = { spec = "1", namespace = "compat", @@ -132,6 +140,14 @@ package = { url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, + -- 0.5.9 has no CN mirror yet (never published to mcpp-res), so it + -- is a plain-string GLOBAL url — check_mirror_urls.lua exempts + -- plain strings, and the maintainer flips it to { GLOBAL, CN } + -- when the mirror lands. sha256 stays the same. + ["0.5.9"] = { + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.9.tar.gz", + sha256 = "370d1da706d94bbbb144fa1634e1d9796a8a1ffd58b696fbb801296aef15703d", + }, }, macosx = { ["0.5.3"] = { @@ -162,6 +178,11 @@ package = { url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, + -- 0.5.9: see the linux block — plain-string GLOBAL, no CN mirror. + ["0.5.9"] = { + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.9.tar.gz", + sha256 = "370d1da706d94bbbb144fa1634e1d9796a8a1ffd58b696fbb801296aef15703d", + }, }, windows = { ["0.5.3"] = { @@ -192,6 +213,11 @@ package = { url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.8.tar.gz", sha256 = "004d46f34d986030b1351080b381bcc48053eb24ebbdf52602b78364f285cd38", }, + -- 0.5.9: see the linux block — plain-string GLOBAL, no CN mirror. + ["0.5.9"] = { + url = "https://github.com/sudoevolve/EUI-NEO/archive/refs/tags/v0.5.9.tar.gz", + sha256 = "370d1da706d94bbbb144fa1634e1d9796a8a1ffd58b696fbb801296aef15703d", + }, }, }, diff --git a/tests/examples/eui-neo-app-main/mcpp.toml b/tests/examples/eui-neo-app-main/mcpp.toml index a79a17a..c5caf4c 100644 --- a/tests/examples/eui-neo-app-main/mcpp.toml +++ b/tests/examples/eui-neo-app-main/mcpp.toml @@ -30,4 +30,4 @@ name = "eui-neo-app-main-tests" version = "0.1.0" [dependencies.compat] -eui-neo = { version = "0.5.8", features = ["app-main"] } +eui-neo = { version = "0.5.9", features = ["app-main"] } diff --git a/tests/examples/eui-neo-markdown/mcpp.toml b/tests/examples/eui-neo-markdown/mcpp.toml index 094d1fb..cde6111 100644 --- a/tests/examples/eui-neo-markdown/mcpp.toml +++ b/tests/examples/eui-neo-markdown/mcpp.toml @@ -7,4 +7,4 @@ version = "0.1.0" # what switches components/markdown.h from its fallback to the real parser. [dependencies.compat] -eui-neo = { version = "0.5.8", features = ["markdown"] } +eui-neo = { version = "0.5.9", features = ["markdown"] } diff --git a/tests/examples/eui-neo-sdl2/mcpp.toml b/tests/examples/eui-neo-sdl2/mcpp.toml index ec9c182..92838cf 100644 --- a/tests/examples/eui-neo-sdl2/mcpp.toml +++ b/tests/examples/eui-neo-sdl2/mcpp.toml @@ -7,4 +7,4 @@ version = "0.1.0" # into a real libcurl-backed implementation. The render backend stays OpenGL, # unnamed — naming a feature no longer costs you the defaults. [dependencies.compat] -eui-neo = { version = "0.5.8", features = ["sdl2", "network"] } +eui-neo = { version = "0.5.9", features = ["sdl2", "network"] } diff --git a/tests/examples/eui-neo-tray/mcpp.toml b/tests/examples/eui-neo-tray/mcpp.toml index f905bc0..dc964c0 100644 --- a/tests/examples/eui-neo-tray/mcpp.toml +++ b/tests/examples/eui-neo-tray/mcpp.toml @@ -25,4 +25,4 @@ name = "eui-neo-tray-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.8" +eui-neo = "0.5.9" diff --git a/tests/examples/eui-neo-vulkan/mcpp.toml b/tests/examples/eui-neo-vulkan/mcpp.toml index f282b52..6957646 100644 --- a/tests/examples/eui-neo-vulkan/mcpp.toml +++ b/tests/examples/eui-neo-vulkan/mcpp.toml @@ -6,7 +6,7 @@ version = "0.1.0" # package resolves the exclusive choice in its own preprocessor from the # MCPP_FEATURE_* flags. The window backend stays GLFW, unnamed. [dependencies.compat] -eui-neo = { version = "0.5.8", features = ["vulkan"] } +eui-neo = { version = "0.5.9", features = ["vulkan"] } [build] cxxflags = ["-DHAVE_EUI_VULKAN=1"] diff --git a/tests/examples/eui-neo-window/mcpp.toml b/tests/examples/eui-neo-window/mcpp.toml index 22d8c76..84822e0 100644 --- a/tests/examples/eui-neo-window/mcpp.toml +++ b/tests/examples/eui-neo-window/mcpp.toml @@ -34,4 +34,4 @@ name = "eui-neo-window-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.8" +eui-neo = "0.5.9" diff --git a/tests/examples/eui-neo/mcpp.toml b/tests/examples/eui-neo/mcpp.toml index e30e58f..a47b1ad 100644 --- a/tests/examples/eui-neo/mcpp.toml +++ b/tests/examples/eui-neo/mcpp.toml @@ -3,4 +3,4 @@ name = "eui-neo-tests" version = "0.1.0" [dependencies.compat] -eui-neo = "0.5.8" +eui-neo = "0.5.9"