Add imgui.app Tier-0 facade and adopt unpinned-toolchain UX#4
Merged
Conversation
imgui.app owns the full GLFW/OpenGL3 lifecycle; consumers supply only a per-frame UI callback. run() is an inline header-style template (UI as a template parameter, no <functional> dependency) and export imports imgui.core. Register src/app.cppm in mcpp.toml sources and add the examples/app_minimal Tier-0 consumer.
A fresh mcpp bootstrap defaults to a musl-static toolchain that cannot link the host X11/GL runtime on Linux. The package does not pin a toolchain in mcpp.toml; set an explicit environment default in CI on Linux only instead. Remove once mcpp bootstrap defaults to glibc.
Document that the package pins no toolchain (mcpp resolves the environment/default) and that the GL runtime is closed by mcpp/mcpp-index (compat.glx-runtime), not bundled. Add imgui.app to the README modules list as Tier-0 (Tier-1 auto via imgui.backend contract, Tier-2 explicit imgui.backend.<impl>). Rewrite design doc 8.1 to the unpinned model and add the consumer-UX-and-lock sub-design doc.
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.
Summary
imgui.appfacade (src/app.cppm): owns the full GLFW/OpenGL3 lifecycle; consumers supply only a per-frame UI callback.run()is an inline header-style template (UI callback as a template parameter, no<functional>dependency) andexport importsimgui.core. Registered inmcpp.tomlsources.examples/app_minimal/: minimal Tier-0 consumer (ImGui::App::run([]{ ... })). Build-checked.Set default toolchain (env)runsmcpp toolchain default gcc@16.1.0on Linux only, between "Install project tools" and "Build library". A fresh mcpp bootstrap defaults to musl-static, which cannot link host X11/GL on Linux. The package pins no toolchain; this is an explicit environment default, removed once mcpp bootstrap defaults to glibc. macOS/Windows unchanged; matrix andcontinue-on-errorunchanged.compat.glx-runtime), not bundled. Addedimgui.appto the README Modules list with the three-tier UX (Tier-0imgui.app/ Tier-1 auto viaimgui.backendcontract / Tier-2 explicitimgui.backend.<impl>)..agents/docs/2026-06-03-consumer-ux-and-lock.md: unpinned-toolchain decision, three-tier UX with snippets, lockfile policy (must includecompat.glx-runtimefor GL runtime closure), CI transition rationale, and mapping to the ecosystem master plan.API
Verification (local, gcc 16.1.0)
mcpp build— passesmcpp test— 4+3 module tests pass; backend_test + imgui_test okcd examples/app_minimal && mcpp build— passes (not run; no window assertion)Lock note
mcpp update+ cleanmcpp buildregeneratesmcpp.lock. With mcpp 0.0.46 the lock records only the three direct deps (compat.glfw/compat.imgui/compat.opengl);compat.glx-runtimeis a transitive Linux-only dep ofcompat.glfwand the GL closure happens at resolve/link time, not expanded in the lock text. (mcpp.lockis also gitignored.) Full lock/RUNPATH closure for glx-runtime depends on the mcpp-core work tracked in the master plan.CI should be green on Linux with the transition step; macOS/Windows remain best-effort (
continue-on-error).