Move WebApps to own repository?

I was thinking about moving the existing webapps to a separate repository. In mid-term we will remove them anyway from the distributions, and we do not make changes to them.

This would make the main repo a bit cleaner and the regular build faster again.

Moved modules:
/webapps (moved)
/qa/integration-tests-webapps
/distro/webjar

However, it would have some implications on the build. There are dependencies on the webapps, especially for building the distributions. Those builds need to consume the webapps, thus requiring a release build that is available on Maven Central, or get them via GitHub releases.

But maybe the distros and with them the integration tests for them could also be moved to a separate repo. I do not expect to change them that often, also.

What are your thoughts?

The web package also includes a backend part which provides some routes and the plugin system for the webapps. The plugin system is tightly coupled to the existing Angular frontend apps. I guess when we would decide to move the web apps to their own repo we would have to move this part, too. I personally prefer if the web apps are a completely separate build/project. We need to decide what to do with the routes from the web package, i would prefer to add them to the REST api.

In my company we have build a custom frontend that also uses these web routes, but we do not need the legacy web apps in our build.

The benefit of having them in the Monorepo are in my opinion:

  • Having the ability to run one test suite to find out if my change in the engine breaks the frontend
  • Having the ability to bundle them with the distributions and testing the bundles

If we agree on the (new) web apps still being part of the distributions in the future, then we might run into the situation that for building or testing a (pre) release we need to run an install on the main repository, run a frontend build which creates and deploys artefacts somewhere and then run the distribution build which ties everything together.

I agree on the build being kind of heavy right now, but there are already ways of disabling the frontend build. On the other hand I think it’s charming to have everything in one repository, and creating the whole distribution from one single Maven build spares us a lot of complexity in coordinating those modules. As a counterpoint, I’d even argue that it might be reasonable to move the new Web Apps to the Monorepo, as soon as they are stable enough to be included in the build

1 Like