Skip to content

Improved developer experience #247

Open
@tuj

Description

@tuj

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions