player-ui / player

Home Page:https://player-ui.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Untangle Circular Dependencies Between Player and Tools Repository

KetanReddy opened this issue · comments

Right now there are a handful of circular dependencies between the Tools and Player repositories. This is mostly due to having to pull in the CLI to compile the XLRs for the core Player types and the reference assets. The circular chain is:

Player -> Language -> CLI -> Player (as a dev dependency)

This is going to cause issues in the long term so we should try and untangle things as soon as possible. The current, proposed target and minimal states for our repository layout strategy are outlined below.

Current State

  • Player
  • Tools

Target State

  • Player
  • XLR*
  • CLI
  • Language
  • Devtools
  • Reference Assets/Plugins

Minimal State

  • Player
  • Tools*
  • Reference Assets/Plugins

Most of this would require moving around existing code. The only real code change that would be required would be to move the logic for the type export mode in the CLI package to the XLR package as a helper script. This would eliminate the requirement to pull in the whole CLI for XLR generation in the main player repo which is where the circular dependency originates from. Pulling the whole CLI in to the Reference Assets/Plugin repository would then be fine as it would be downstream from both the Tools and Player Repository.

The goal of the Target state would be to create more clear definitions around version releases for the different sub-projects in each monorepo that are currently linked (e.g why does a release of the player language facilitate an XLR library release. This is probably more of a long term goal that, once we achieve minimal state, we can take some time to adopt when appropriate.