Repository navigation
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. |
…ith no boss.json verifyDependencyCompatibility currently returns the load error when a dependency ships no boss.json, which fails the whole install. #281 fixes the behaviour; these three tests pin it so a future lint sweep cannot reintroduce it. - WithoutBossJSON: a plain source library with no manifest must install. - MalformedBossJSON: a boss.json that exists but does not parse must still be reported, so the fix stays narrow. - UnsupportedPlatform: the engines/platforms check itself keeps working in strict mode. Only the first one depends on #281; the other two pass on main today. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ression test(installer): regression tests for a dependency with no boss.json (#281)
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.