|
| 1 | +# ADR 008 - Mono repository |
| 2 | + |
| 3 | +Date: 30-06-2025 |
| 4 | + |
| 5 | +## Status |
| 6 | + |
| 7 | +Proposed |
| 8 | + |
| 9 | +## Context |
| 10 | + |
| 11 | +With the current multi-repository setup, when a new feature is added to the system, it often depends on changes to |
| 12 | +multiple repositories, at the same time. |
| 13 | +This split across the repositories complicates the development process. |
| 14 | + |
| 15 | +Another part of this is dependency management and maintenance across multiple repositories. It is important that the |
| 16 | +code uses up-to-date dependencies. At the moment, this is especially an issue in the admin, client and templates |
| 17 | +repositories that all depend on React and other javascript libraries. By merging these repositories the process of |
| 18 | +updating the dependencies will be handled once instead of 3 times. |
| 19 | + |
| 20 | +## Decision |
| 21 | + |
| 22 | +We gather the code in `os2display/display-api-service` repository. The `os2display/display-client`, |
| 23 | +`os2display/display-admin-client` and `os2display/display-templates` repositories will be merged into |
| 24 | +`os2display/display-api-service`. |
| 25 | + |
| 26 | +The `os2display/display-api-service` repository will be renamed to `os2display/display`. |
| 27 | + |
| 28 | +The `os2display/display-docs` repository will be kept separate so the user facing documentation can be updated outside |
| 29 | +the regular release cycle. |
| 30 | + |
| 31 | +Symfony routes and controllers will be added for `/client` and `/admin` to handle serving and configuring the screen and |
| 32 | +admin clients. This will enable us to move configuration for the two clients to .env and expose directly in html through |
| 33 | +twig templates. |
| 34 | + |
| 35 | +The static javascript build files will be served directly by nginx from `/public`. |
| 36 | + |
| 37 | +## Consequences |
| 38 | + |
| 39 | +All the code will be gathered into one repository. This will result in a single point of entry for development. |
| 40 | + |
| 41 | +Maintaining the javascript parts of the code will be unified. This will make the upgrading tasks easier. |
| 42 | + |
| 43 | +By unifying the code, features can be gathered into one feature branch. |
| 44 | +This will make it easier to track the changes. |
| 45 | + |
| 46 | +Releases will only involve one tag, instead of multiple tags across repositories. |
0 commit comments