Skip to content

Commit 99abe14

Browse files
authored
Merge pull request #253 from os2display/feature/4565-adr
Added ADRs 008, 009
2 parents 70ac049 + ff33c3b commit 99abe14

File tree

4 files changed

+78
-1
lines changed

4 files changed

+78
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
66

77
* Gathered all repositories in one Symfony application.
88
* Changed to vite 7 and rolldown.
9+
* Added ADRs 008 and 009.
910

1011
### NB! Prior to 3.x the project was split into separate repositories
1112

docs/adr/006-templates.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ Date: 27-11-2024
44

55
## Status
66

7-
Accepted
7+
Superseded
88

99
Written years after the decision was made.
1010

11+
Superseded by [009-remove-remote-components.md](009-remove-remote-components.md).
12+
1113
## Context
1214

1315
The display client should run in a browser. Slide templates should therefore be written in javascript/React.

docs/adr/008-mono-repository.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# ADR 009 - Remove remote components
2+
3+
Date: 30-06-2025
4+
5+
## Status
6+
7+
Proposed
8+
9+
## Context
10+
11+
The [library](https://www.npmjs.com/package/@paciolan/remote-component) for loading remote components we use for
12+
importing the templates is abandoned.
13+
14+
This makes it harder to keep the React applications up-to-date. Furthermore, remote-components have added
15+
an unfortunate layer that hides javascript errors from the templates. This makes it harder to debug template issues.
16+
17+
## Decision
18+
19+
We remove the option of loading external templates into the system (remote components) and replace it with templates
20+
that are a part of the code. The `os2display/display-templates` will be merged with the`os2display/display-api-service`
21+
repository (See ADR-008).
22+
23+
## Consequences
24+
25+
Removing remote components will remove the option of importing templates from other locations. Therefore, the templates
26+
need to be a part of the repository code.
27+
28+
To add your own templates you will have to fork the repository, add your templates and build your own clients.

0 commit comments

Comments
 (0)