Volto: Dependency links between frontend and backend packages for in-development addons

I'm currently working on adding a testing framework to volto-form-block through kind-of backporting the testing framework scaffolding available in Volto 17. While working on this, I've come across the following problem: how do we best define backend dependencies for a frontend package?

The current process seems to be to document these in the README, however this doesn't help when the backend package is needed for tests. This problem is further exacerbated when you are also developing a PR in the backend simultaneously. How can we point the frontend branch to the specific branch in the backend?

Two ideas come to mind. The first is to use mono-repos for Volto addons, as discussed in another thread: Monorepo for plone/volto addons? . I think this best solves the problem as then the 'backend dependency' essentially becomes whatever the current state of the monorepo is.

My second (untested) idea is to have a file (e.g. constraints.txt) that lists out testing dependencies, which will be updated any time a branch needs a backend dependency updating. This file would have to be kept in-sync with the backend as releases are done.

Just wondering if this is a solved problem, or if anybody has any comments on it?

2 Likes