Description
Improved developer experience
Proposal
We propose to gather the different repositories of the OS2Display project into one repository (the API repository) and
rename it from os2display/display-api-service to os2display/display. We propose that Symfony will handle the
routes for the admin and client.
Motivation
The goal of this proposal is to make it easier to maintain and further develop the project.
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 the maintenance of the 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.
By making the admin and client endpoints routes in Symfony the infrastructure setup can be simplified in the future.
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.
Tasks
- Gather repositories into one repository.
- Add the
/admin
and the/client
routes to Symfony. - Unify developer documentation into one.
- Update infrastructure.
- Rename the repository to os2display/display.
- Use Symfony to deliver config to clients.
- Streamline frontend tests by using playwright for admin, client and templates.