Skip to content

Added ADRs 008, 009 #253

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.

* Gathered all repositories in one Symfony application.
* Changed to vite 7 and rolldown.
* Added ADRs 008 and 009.

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

Expand Down
4 changes: 3 additions & 1 deletion docs/adr/006-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ Date: 27-11-2024

## Status

Accepted
Superseded

Written years after the decision was made.

Superseded by [009-remove-remote-components.md](009-remove-remote-components.md).

## Context

The display client should run in a browser. Slide templates should therefore be written in javascript/React.
Expand Down
46 changes: 46 additions & 0 deletions docs/adr/008-mono-repository.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# ADR 008 - Mono repository

Date: 30-06-2025

## Status

Proposed

## Context

With the current multi-repository setup, when a new feature is added to the system, it often depends on changes to
multiple repositories, at the same time.
This split across the repositories complicates the development process.

Another part of this is dependency management and maintenance across multiple repositories. It is important that the
code uses up-to-date dependencies. At the moment, this is especially an issue in the admin, client and templates
repositories that all depend on React and other javascript libraries. By merging these repositories the process of
updating the dependencies will be handled once instead of 3 times.

## Decision

We gather the code in `os2display/display-api-service` repository. The `os2display/display-client`,
`os2display/display-admin-client` and `os2display/display-templates` repositories will be merged into
`os2display/display-api-service`.

The `os2display/display-api-service` repository will be renamed to `os2display/display`.

The `os2display/display-docs` repository will be kept separate so the user facing documentation can be updated outside
the regular release cycle.

Symfony routes and controllers will be added for `/client` and `/admin` to handle serving and configuring the screen and
admin clients. This will enable us to move configuration for the two clients to .env and expose directly in html through
twig templates.

The static javascript build files will be served directly by nginx from `/public`.

## Consequences

All the code will be gathered into one repository. This will result in a single point of entry for development.

Maintaining the javascript parts of the code will be unified. This will make the upgrading tasks easier.

By unifying the code, features can be gathered into one feature branch.
This will make it easier to track the changes.

Releases will only involve one tag, instead of multiple tags across repositories.
28 changes: 28 additions & 0 deletions docs/adr/009-remove-remote-components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# ADR 009 - Remove remote components

Date: 30-06-2025

## Status

Proposed

## Context

The [library](https://www.npmjs.com/package/@paciolan/remote-component) for loading remote components we use for
importing the templates is abandoned.

This makes it harder to keep the React applications up-to-date. Furthermore, remote-components have added
an unfortunate layer that hides javascript errors from the templates. This makes it harder to debug template issues.

## Decision

We remove the option of loading external templates into the system (remote components) and replace it with templates
that are a part of the code. The `os2display/display-templates` will be merged with the`os2display/display-api-service`
repository (See ADR-008).

## Consequences

Removing remote components will remove the option of importing templates from other locations. Therefore, the templates
need to be a part of the repository code.

To add your own templates you will have to fork the repository, add your templates and build your own clients.
Loading