Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Legend Application Core module #370

Closed
9 tasks done
akphi opened this issue Jul 26, 2021 · 0 comments 路 Fixed by #427
Closed
9 tasks done

RFC: Legend Application Core module #370

akphi opened this issue Jul 26, 2021 · 0 comments 路 Fixed by #427
Labels
Component: Application Framework Issues related to the core application framework shared by all apps: Studio, Query, etc. Studio Core Team Opened by a member of the Studio core team Type: Discussion Type: Refactor

Comments

@akphi
Copy link
Contributor

akphi commented Jul 26, 2021

馃挰 Request for Comments

As we start to build more app using @finos/legend-studio, we realize that we need to split the core even further down and form a core group of components, state management that we can collectively call @finos/legend-application. If we can do this, we can make Legend Query (or if we have succesfully separated it out to @finos/legend-query) to be more independent. Also, this would help many Legend apps that we will potentially build in the future.

Plugin

  • Rename EditorPlugin to LegendStudioPlugin
  • Check if we need to abstract PluginManager to become LegendApplicationPluginManager or so?

Stores

  • Create useSDLCClientStore which has the SDLCClient and knows how to parse the config for SDLC-related info
  • Create useMetadataClientStore which has the MetadataClient and knows how to parse the config for metadata-related info
  • Create usePureGraph which has the graph and graphManager. This way we can share this with any Legend applications in the future that needs to use graph and build graph such as Query. Make legend-query use this instead of relying on EditorStore like now.
  • Potentially we can create a <LegendReactApplication> component that has Notification, ApplicationStore, Material-UI, DnDBackend, etc. and with React setup for things like react-reflex, react-hotkeys, etc. (see LegendMaterialUITheme, setupLegendStudioUILibrary).
  • Create @finos/legend-application. Move the LegendApplication logic here. The point is that we can have shared components in here and nolonger have legend-query depends on legend-studio.
  • Potentially move Entity and ProjectDependency out to a separate module called legend-storage
  • Rename packages like legend-studio-shared, legend-studio-* to legend-* as they can be shared across multiple applications now

Legend Studio - Editor modes

See and revise #317
The idea is that we can pass boolean flags while creating EditorStore instead of relying on flags like isInViewerMode or isInConflictResolutionMode, etc.

Legend Query

We should create @finos/legend-query and slim down @finos/legend-studio-preset-query-builder. We should aim to no longer have @finos/legend-query depends on @finos/legend-studio if possible

This was referenced Aug 23, 2021
@akphi akphi added the Studio Core Team Opened by a member of the Studio core team label Oct 29, 2021
@akphi akphi added the Component: Application Framework Issues related to the core application framework shared by all apps: Studio, Query, etc. label Feb 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Application Framework Issues related to the core application framework shared by all apps: Studio, Query, etc. Studio Core Team Opened by a member of the Studio core team Type: Discussion Type: Refactor
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant