Plugin builds compile against the portal, not the test runner

A plugin is built inside a MeshWeaver image, and until now memex build plugin used a single one: the test runner. That image carries only what running the tests needs — a little under half of what a portal actually ships. Anything a portal has and the test runner does not simply was not there while the plugin compiled.

For most plugins that made no difference, which is what made it hard to see. For a plugin using one of the portal-only libraries — maps, for instance — the build stopped with "the type or namespace name 'Maps' does not exist", pointing at a page that had not been touched in weeks. The message was accurate about what the compiler could see and completely misleading about the cause: nothing was wrong with the page, the build was simply looking at the wrong shelf.

The build now takes the portal image as well, and compiles against the portal's libraries while the test runner does the running. The same page that failed yesterday builds today, unchanged.

Two things follow from that, both deliberate:

The repository's own CI pipelines already worked this way. This brings the command-line tool in line, so a plugin repository gets the same answer whichever route it builds through.

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.