QVAC-25104 fix: stop publishing platform-dependent values in fabric's package config - #4539
Merged
jpgaribotti merged 2 commits intoSep 18, 2026
Merged
Conversation
Contributor
License compliance — cleanNo new dependency license findings in this PR. Warn-only (shadow) mode — this check does not block merges yet. Updated automatically by the canonical license compliance workflow. NOTICE presence (advisory)Missing NOTICE (advisory, does not block):
|
6 tasks
jpgaribotti
force-pushed
the
fix/qvac-25104-fabric-config-no-platform-values
branch
from
September 18, 2026 13:18
a8e43f9 to
ef13046
Compare
… config QVAC_FABRIC_ABI_VERSION and QVAC_FABRIC_OWNS_CXX_RUNTIME describe the platform they were configured for, but the file carrying them does not: qvac-fabricConfig.cmake installs to share/qvac-fabric/cmake, every prebuild leg produces it, and the merge step downloads all nine with merge-multiple: true, so the published package holds whichever leg finished last. ON from either Linux leg, OFF from Android, empty from darwin, iOS or win32 -- and a consumer had no way to tell a value meant for it from one that was not. The published 0.16.0 carries ON by that ordering rather than by construction, and the draw is re-rolled on every release. Publishing them per triplet was the alternative. There is nothing left to publish for: consumers assert the pin against the .bare for their own triplet, where __cxa_throw is either defined under a version node or is not, so the in-tree addon template stopped reading either variable and nothing else in the repository ever did. A config value with no consumer that is wrong 7 legs out of 9 is better removed than relocated. QVAC_FABRIC_ABI_VERSION stays as a build variable, still asserted against symbols.map so the name and the script cannot drift. The comment left in the template records why nothing platform-dependent may go back in. Follow-up to the review on #4519.
jpgaribotti
force-pushed
the
fix/qvac-25104-fabric-config-no-platform-values
branch
from
September 18, 2026 13:23
ef13046 to
5b3f1a1
Compare
jpgaribotti
marked this pull request as ready for review
September 18, 2026 13:42
Contributor
Review StatusCurrent Status: ✅ APPROVED |
gianni-cor
approved these changes
Sep 18, 2026
iancris
approved these changes
Sep 18, 2026
GustavoA1604
approved these changes
Sep 18, 2026
jpgaribotti
deleted the
fix/qvac-25104-fabric-config-no-platform-values
branch
September 18, 2026 14:32
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.
🎯 What problem does this PR solve?
qvac-fabricConfig.cmakepublishesQVAC_FABRIC_ABI_VERSIONandQVAC_FABRIC_OWNS_CXX_RUNTIME, which describe the platform they were configured for —ONon a Linux release link,OFFon Android, empty on darwin, iOS and win32.share/qvac-fabric/cmake, every prebuild leg produces it, and the merge job downloads all nine legs withmerge-multiple: true, so the published package keeps whichever leg finished last.@qvac/fabric@0.16.0ships nine platform directories and oneprebuilds/share/qvac-fabric/cmake/qvac-fabricConfig.cmake, andqvac_addon_use_fabricpointsqvac-fabric_DIRat exactly that copy.0.16.0happens to carryON, so today's consumer builds are right by artifact ordering rather than by construction — and only 2 of the 9 legs produce that value. The draw is re-rolled on every release.0.16.1still published them.0.15.0's config defined noQVAC_FABRIC_*variables and the mergedqvac-fabricTargets.cmakehas no platform-specific content, soshare/was effectively identical across legs.0.16.0was the first release to put a platform-varying value on a shared path.📝 How does it solve it?
.barefor its own triplet, where__cxa_throwis either defined under a version node or is not, so QVAC-25104 fix: assert addons pin fabric's C++ runtime and narrow exports #4519 stopped reading either variable and nothing else in the repository ever did.QVAC_FABRIC_ABI_VERSIONstays as a build variable inCMakeLists.txt, still stamped onto the version node so the name and the script cannot drift.🧪 How was it tested?
configure_package_config_filewith fabric's template and loaded it from a separate consumer project:find_package(qvac-fabric CONFIG REQUIRED)resolves, the version file matches, the targets include runs, and both variables come back undefined.💥 Breaking Changes
Removes two variables from the package config's public surface. Both were introduced in
0.16.0, describe the wrong platform for 7 of the 9 published legs, and have no consumer in this repository. The changelog entry sits under[Unreleased]; the version is deliberately not stamped here.Rebased onto
mainafter #4519, #4566, and the0.16.1addon rebuilds landed.