Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Plugin system #25

Open
4 of 6 tasks
baransu opened this issue Mar 29, 2017 · 5 comments
Open
4 of 6 tasks

Plugin system #25

baransu opened this issue Mar 29, 2017 · 5 comments

Comments

@baransu
Copy link
Contributor

baransu commented Mar 29, 2017

This issue is an umbrella issue for Erlang Performance Lab UI plugin system.

We're working on plugin system which will provide other developers easy way for creating new functionality for Erlang Performance Lab.

Our key part are epl-scripts. This is Node dependency providing dev, build and test functionality for every plugin. It's preconfigured blackbox with all required parts for new EPL plugin development. Because by default epl-scripts are preconfigured we support almost none additional configuration. But there comes eject functionality. You can eject your project which move all epl-scripts config and scripts into your project. This allow you to tweak configs and/or add custom functionality which we don't support. This is one way path. You cannot revert ejection.

Another part are epl-components. This dependency will provide styled component for building new EPL views as well as some helper functions for socket connection, Footer and Menu API, etc.
Both epl-scripts and epl-components will be published to npm.

erlangpl-ui will require some refactoring to allow plugins loading in both development mode as well as production mode. In later phase we're thinking about loading additional plugins at runtime, but this may change in the future.

epl-scripts

epl-components

To be defained

erlangpl-ui

  • figure out development method
  • inject styles and scripts for prebuilt plugins
  • register Component, reducer, and navigation for every available plugin
@arkgil
Copy link

arkgil commented Mar 29, 2017

Can you please explain eject functionality? I'm not sure I get it 😦

@baransu
Copy link
Contributor Author

baransu commented Mar 29, 2017

This is concept borrowed from create-react-app. This will remove one dependency (epl-scripts) and move all config/scripts from this into your project so you can tweak them and adjust as you want.

@baransu
Copy link
Contributor Author

baransu commented Mar 29, 2017

erlangpl-ui started as create-react-app project and right now, we're ejected which gives us full control over configuration. It was required to support Elm for example.

@arkgil
Copy link

arkgil commented Mar 29, 2017

Thanks, now I understand :) Sounds good 👍

@baransu
Copy link
Contributor Author

baransu commented Apr 5, 2017

I'm going to merge experimental plugin system as fast as possible because we want to merge erlangpl-ui into erlangpl repo. This issue will be updated to contain all things for complete plugins system for both UI and Erlang part.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants