Repository navigation
Keep UIAdapterInterfaces files in patches until the next base - #1208
Conversation
Base build 1452 installs UIAdapterInterfaces.dll, its .dll.config and .pdb, a UIAdapterInterfaces.resources.dll in each of 29 culture folders, and FwTMDefinition.xml. #1202 deleted the project and the XML file, so the patch build dropped those 33 components and pyro failed with PYRO0305 for each one. List them in RemovedSinceLastBase so RescuePatching writes zero-byte stand-ins and the patch keeps every base component. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
NUnit Tests 1 files ±0 1 suites ±0 14m 37s ⏱️ + 3m 42s Results for commit 5099af1. ± Comparison against base commit b98ed59. This pull request removes 1 test.♻️ This comment has been updated with latest results. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1208 +/- ##
==========================================
- Coverage 39.94% 39.94% -0.01%
==========================================
Files 1542 1542
Lines 355217 355217
Branches 41329 41329
==========================================
- Hits 141903 141900 -3
- Misses 183977 183981 +4
+ Partials 29337 29336 -1 🚀 New features to boost your workflow:
|
The test asserts that the Find box holds Windows keyboard focus after ApplyWS. In the Patch Installer workflow it failed that check on two runs of the same commit, while the Base Installer and Debug CI runs of that code passed it. A test host on a shared runner desktop cannot rely on keeping focus, which is why LastTextBoxInFocus in this fixture is already DesktopRequired. Tag it DesktopRequired so CI skips it and desktop runs keep the check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mark-sil
left a comment
There was a problem hiding this comment.
Thanks for cleaning up the problem I caused!
|
Post-merge summary. This PR merged with a second commit that the title and description don't mention. Both commits together get the Patch Installer green again after #1202.
Verified before merge: Patch Installer run 40438692453 on
Why the test tag doesn't hide a regression from this PR:
The failure follows the Patch Installer workflow, not this change. No binary references Follow-up: the stand-ins must be removed before the next base. A base release build fails while any 🤖 Generated with Claude Code |
Start here:
Build/Installer.legacy.targets, theRescuePatchingtarget. It is the only file changed.Status: Draft until a Patch Installer dispatch run on this branch goes green. That workflow never runs on pull requests.
The Patch Installer workflow on main has failed since #1202 with 33 errors of this form:
This PR adds the dropped files to
RemovedSinceLastBase. The target then writes zero-byte stand-ins, so the patch keeps every component that base build 1452 installed. #1092 used the same fix forStructureMap.dll, andFLExInstaller/AGENTS.mddocuments it.Why #1206 hit this. The failure isn't specific to #1206 (SIL.Machine 3.9.6). #1202 deleted the UIAdapterInterfaces project and
DistFiles/FwTMDefinition.xml. The run on #1202's own commit was cancelled by a later push, so the first visible failure was on #1201 (c734bffa8), before #1206 merged. A Windows Installer patch can't remove a component the base installed, so pyro rejects each missing one.Where to look
Completefeature (UIAdapterInterfaces.dll,.dll.config,.pdb,FwTMDefinition.xml) plusUIAdapterInterfaces.resources.dllin 29 culture folders. That's 33 entries, one per PYRO0305 error, checked against the base'sBuildDir.ziplisting. Malay counts twice because it covers bothmsandzlm.UIAdapterInterfaces.dll.Not here: an issue to remove these stand-ins before the next base. The base release build already fails while any
RemovedSinceLastBaseentry remains.Verification
RescuePatchingrun alone into a scratch folder: writes 35 zero-byte files (2 existing + 33 new) at the base's relative paths../build.ps1 -CommentHygiene -TokenHygiene: passed, 0 warnings, 0 errors.-BuildPatch(this machine lacks the installer build prerequisites).make_releaseset tofalse.Next: approve once the Patch Installer dispatch run is green.
Reading this a year from now -- start here
These stand-ins exist only to keep patches on base build 1452 installable. Remove the UIAdapterInterfaces and FwTMDefinition.xml entries from
RescuePatchingbefore cutting the next base. A base release build fails while they remain (FailOnRemovedSinceLastBase), and a dirty local build must also delete the zero-byte files.Paths not taken
PatchableInstallerHeatExclude.xml). It removes files from the harvest, which still drops the components from the patch.FLExInstaller/AGENTS.mdrules it out for this case.Evidence
c734bffa8. The last green push run was on2de0a3d63.build-1452BuildDir.zip(read through its zip directory, not downloaded) hasobjects/FieldWorks/{UIAdapterInterfaces.dll,.dll.config,.pdb,FwTMDefinition.xml}. It also hasobjects/FieldWorks_L10n/<culture>/UIAdapterInterfaces.resources.dllfor ar az bn de es fa fr hi hu id km ko ml ms my ne pt ru rw sw ta te th tr ur vi yo zh-CN zlm. Stand-ins under$(dir-outputBase)/<culture>/are staged as L10n files, and root stand-ins as bin files, so both land at those paths.Src:FwAvaloniaPreviewHost/ModuleCatalog.cs(dev-only preview host) and a*Plugin.dllDirectoryCataloginScriptureProvider.cs. Neither matches the stand-ins.🤖 Generated with Claude Code
This change is