MGS1038: a magus.project option was removed
A magusfile sets a key that magus.project used to accept:
[error] [MGS1038] magus.project: targets["build"]: option "exclusive" was removed in
v0.5.0 with no replacement; slots and memory_mb are the only concurrency dials, so delete
the key
Why this stops the load instead of ignoring the key
An option magus does not recognize is usually ignored with a warning, because it may come from a NEWER magus: rejecting it would stop the workspace loading, including the command that builds a binary new enough to read it.
A removed option is the opposite case. It came from an OLDER magus, and you are already on the newer one. The ignore path would tell you to upgrade, which sends you in a circle, and meanwhile the value you declared does nothing. Stopping with the key's name and what to do is the only answer that ends the loop.
What to do
Follow the message. Each removed option names its replacement, or says it has none.
| option | removed in | instead |
|---|---|---|
exclusive |
v0.5.0 | nothing: delete the key |
exclusive
It asked for a target, or every target in a project, to run with no other target beside it. It was meant for a target that uses the whole machine, and measured across every declaration it never did: most protected nothing, and where the engine honored it, it serialized every other gate member behind one target until the stall watchdog took the run.
slots and memory_mb are the concurrency dials a target has. A target that must not run
beside a peer is making a claim about a shared resource, such as a tag namespace or a
branch it pushes, and the place to express that is its own CI job rather than a policy on
the target. ADR 0001
records the reasoning and the measurement.