A versioned API for client side plugins

It’s on my list to review it. I suspect most of the steps will stay the same but I will confirm.

You should use api.container in your new code, but you can just pass the container to your old code like this:

initialize(container) {
   withPluginApi('0.1', api => newCode(api), { noApi: () => oldCode(container) });
}

(I doubt I will ever remove container from initialize BTW. The api object just has it for convenience so you don’t have to pass it around).