Skip to content

Porting from the legacy Geppetto

Filippo Ledda edited this page Nov 4, 2021 · 8 revisions

Porting from the legacy Geppetto

Geppetto-Meta introduces several backwards uncompatible changes from the legacy Geppetto.

High level changes

  • Monorepo: all supported library components are included in the geppetto-meta git repository
  • Only Python backend (PyGeppetto)
  • The frontend is divided into three libraries:
    • @metacell/geppetto-meta-core: contains the model definitions and the model factory
    • @metacell/geppetto-meta-ui: collection of ui components for neuroscience applications. Depends on geppetto-meta-core
    • @metacell/geppetto-meta-client: evolution of the legacy geppetto-client. The new client still supports the websocket backend but it is less opinionated about application workflows. Uses Redux as messaging system and the application that uses Geppetto can add other layers of actions/reducers/middlewares. Has a new widget and layout system based on flexlayout.

Porting the frontend

Dependencies

geppetto-meta js libraries are now compiled and available on npm.

On package.json

  "dependencies": {
    ...
    "@metacell/geppetto-meta-client": "1.0.0-alpha1",
    "@metacell/geppetto-meta-core": "1.0.0-alpha1",
    "@metacell/geppetto-meta-ui": "1.0.0-alpha1",
  ...
  }

Geppetto libraries dependencies are defined as peer dependencies. It is needed to add to the dependencies any dependency that are needed (some ui dependencies may not be needed depending on the project).

Change imports in the code

  • @geppettoengine/geppetto-client/geppetto-client -> @metacell/geppetto-meta-client
  • @geppettoengine/geppetto-client/geppetto-ui-> @metacell/geppetto-meta-ui
  • @geppettoengine/geppetto-client/geppetto-core-> @metacell/geppetto-meta-core

Removed apis

  • Most of the instance capabilities apis that relate to control logic, like:
    • VisualCapability: changeColor, select, etc
    • importValue, importType

Deprecated apis

  • GEPPETTO variable. The GEPPETTO variable should not be used anymore to reference managers and apis.
  • GEPPETTO.trigger
    • -> dispatch redux actions
    • Import and use the EventManager
  • GEPPETTO.on, GEPPETTO.off
Clone this wiki locally