Celbridge Python architecture

Celbridge is currently designed as an Uno Platform application that has integrated Python scripting. Given how powerful the Python scripting system has proven to be, I now want to flip this architecture around.

This means that Celbridge should now be considered primarily as a Python tool, with a user friendly Uno Platform GUI layered on top.

This means that almost all operations that are currently implemented in C# / .NET should instead be implemented as Python CLI commands that are invoked from the .NET side via JSON-RPC. To avoid disruption, we will migrate to this new architecture gradually, by moving selected operations over to Python in small batches.

The first step in this migration is to develop the two Python packages that will support the new architecture:

  1. celbridge: A CLI tool (written in Python) that exposes commands for common operations: e.g. new project, add | delete | move files & folders, undo | redo, etc.
  2. celbridge_host: A long running Python host that mediates between the Celbridge Uno Platform application and the celbridge CLI tool.

Both packages are shipped with the Celbridge app installer and are automatically installed on app startup. From the REPL, the user can interact with these packages via the cel global variable.

The celbridge package will also be published on pypi so that developers can work with Celbridge projects independently of the Celbridge Uno Platform application and the celbridge_host package, e.g. for automation, CI, etc.