From bc72ce3902b258cb9e73bf36cb65d67dbb427755 Mon Sep 17 00:00:00 2001 From: Dario Lipicar Date: Sat, 22 Aug 2026 21:02:03 -0300 Subject: [PATCH] fix(deps): restore the view teardown hook, and pick up the deduplicated qt-sdk (#214) * fix(deps): bump logos-view-module so generated view glue regains its teardown hook #211 switched ui_qml glue generation from logos-qt-generator to logos-view-generator, but the logos-view-module pin (1f95a75) PREDATES the reconciliation that gave that emitter the module teardown hook. Measured on the two revisions: emitter context header 1f95a75 (pinned until now) 0 aboutToUnload 0 maybeUiPluginAboutToUnload d6c8885 (this bump) 4 lines 2 So since #211 every view plugin built through this repo has silently lost aboutToUnload(). It is silent by construction: a generated plugin missing the hook builds, loads and runs, it is just never asked to finish. Nothing in the build says a word -- which is the exact failure mode that motivated moving the emitter and its header into ONE repo under ONE pin in the first place. The bump also brings logos-view-generator's `--backend` validation: it now refuses an unrecognised value instead of ignoring the flag, which lib/modulePreConfigure.nix already documents and depends on. Verified: nix build .#checks.aarch64-darwin.qml-integration passes on the bump. Co-Authored-By: Claude Opus 5 * chore(deps): pick up the qt-sdk that no longer ships logos_ui_plugin_context.h logos-qt-sdk#42 deleted its copy of the header (and the logos_qt_provider target that existed only for it), leaving logos-view-module the sole owner. Two LogosModule.cmake comments described the old world and are corrected. The BEFORE-ordering of LOGOS_VIEW_INCLUDE_DIR stays. It is no longer what decides which copy wins -- there is only one copy now -- but this repo pins the two repos independently, and an older qt-sdk pin (a rollback, a branch, a consumer overriding the input) brings the duplicate straight back. Belt-and- braces now, load-bearing again the moment those pins disagree. Verified with the view-module bump in the same branch: nix build .#checks.aarch64-darwin.qml-integration PASS nix build .#checks.aarch64-darwin.qt-host-repoint PASS Co-Authored-By: Claude Opus 5 --------- Co-authored-by: Claude Opus 5 --- cmake/LogosModule.cmake | 16 ++++++++++------ flake.lock | 12 ++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cmake/LogosModule.cmake b/cmake/LogosModule.cmake index 699e31b..727480e 100644 --- a/cmake/LogosModule.cmake +++ b/cmake/LogosModule.cmake @@ -543,11 +543,14 @@ function(logos_module) ) endif() # logos_ui_plugin_context.h, from logos-view-module — and FIRST, ahead of - # the logos-qt-sdk root below, which may still ship a copy of the same - # header name. + # the logos-qt-sdk root below. # - # Ordering is load-bearing here, which is exactly why this is not left to - # chance. This header and the view glue emitter are one MATCHED PAIR: the + # As of the qt-sdk pin above, logos-view-module is the ONLY repo that ships + # this header, so ordering is no longer what decides which copy wins. It + # stays BEFORE anyway: this repo pins the two independently, and an older + # qt-sdk pin — a rollback, a branch, a consumer overriding the input — brings + # the duplicate straight back. Belt-and-braces now, load-bearing again the + # moment those pins disagree. This header and the view glue emitter are one MATCHED PAIR: the # emitted `_ui_glue.cpp` calls # `_logos_codegen_::maybeUiPluginAboutToUnload(...)`, which only this header # declares. Both now ship from logos-view-module under ONE pin, so they @@ -572,8 +575,9 @@ function(logos_module) endif() # The Qt-typed headers logos-qt-sdk owns — logos_qt_lp_bridge.h / # logos_qt_wire.h (emitted by name into generated Qt consumer wrappers). - # It may still ship logos_ui_plugin_context.h too; the block above is - # ordered ahead of this one so logos-view-module's copy is the one found. + # It no longer ships logos_ui_plugin_context.h; logos-view-module is its sole + # owner, and the block above stays ordered ahead of this one so an older + # qt-sdk pin that still carries a copy cannot win. if(NOT "${LOGOS_QT_SDK_ROOT}" STREQUAL "${LOGOS_QT_HOST_ROOT}") if(LOGOS_QT_SDK_IS_SOURCE) target_include_directories(${MODULE_NAME}_module_plugin PRIVATE diff --git a/flake.lock b/flake.lock index bdc7213..00cf18f 100644 --- a/flake.lock +++ b/flake.lock @@ -4261,11 +4261,11 @@ ] }, "locked": { - "lastModified": 1787433990, - "narHash": "sha256-nUZ2qLB6sRfhHzlGkX8Trgr4tQcYVsbhbr0HR80jthc=", + "lastModified": 1787442773, + "narHash": "sha256-XBztDKox0BmrTnIVVWji8Jhgh1dVKqAEqXj1dUlWIOE=", "owner": "logos-co", "repo": "logos-qt-sdk", - "rev": "133042bffe9a9e904e2a60cba9b710f6d4582514", + "rev": "4ab78a1a42f0db1ff97cc5d8a3fb9b41753e16c9", "type": "github" }, "original": { @@ -4730,11 +4730,11 @@ ] }, "locked": { - "lastModified": 1787164758, - "narHash": "sha256-RFu9RTD4RVbwoKJN01qmt00eqF8ZwKHm3gcbYc95HyE=", + "lastModified": 1787441236, + "narHash": "sha256-dDbws6OlaOw5YTCHQfVLXqF+ssD6Fs3vCrLqOthEYOI=", "owner": "logos-co", "repo": "logos-view-module", - "rev": "1f95a75f836a7601bde3b488dc2e773c4ebb9068", + "rev": "d6c8885494524504cc5ea9dcfdad54a98ed26ea4", "type": "github" }, "original": {