fix(installer): don't fail install when a dependency has no boss.json - #281
Conversation
verifyDependencyCompatibility loads the dependency's boss.json to check engine/platform constraints, but returned an error when the file does not exist. Most Delphi libraries (Kastri, Alcinoe, ...) ship without a boss.json, so any install of such a dependency failed with: failed to load package from ...\boss.json: The system cannot find the file specified. Treat a missing boss.json as "no engine constraints declared" and skip the compatibility check; other load errors (e.g. malformed JSON) still fail the install. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Tested this here and it is correct — measured, not just read. Details below in case they help move it along. Reproduced first. A user on v3.0.17 hit exactly this on a fresh clone: 2 of 12 dependencies died, one of them Then measured. Two binaries from the same tree (
The baseline reproduces the reported output byte for byte, and the patched build then prints The Origin, for the record: Suite: with this patch applied, I opened #286 with three regression tests for this — tests only, no production code, so it does not compete with this PR. It covers the missing manifest, plus a malformed One last thing worth flagging: v3.0.17 was published 2026-08-22, so even after this merges, anyone hitting the bug stays broken until there is a new tag. |
verifyDependencyCompatibility loads the dependency's boss.json to check engine/platform constraints, but returned an error when the file does not exist. Most Delphi libraries (Kastri, Alcinoe, ...) ship without a boss.json, so any install of such a dependency failed with:
failed to load package from ...\boss.json: The system cannot find
the file specified.
Treat a missing boss.json as "no engine constraints declared" and skip the compatibility check; other load errors (e.g. malformed JSON) still fail the install.