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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve DX when developing extensions #97

Open
plouc opened this Issue Aug 19, 2016 · 3 comments

Comments

Projects
None yet
2 participants
@plouc
Owner

plouc commented Aug 19, 2016

Must have

  • Provide support for hot reloading webpack
  • Provide support for watch on config #103
  • Add documentation on the workflow (linking…)

Nice to have

  • Provide support for automatic server restart (nodemon ?)

@plouc plouc added this to the v2 milestone Aug 19, 2016

@plouc plouc self-assigned this Aug 19, 2016

@robblovell

This comment has been minimized.

Show comment
Hide comment
@robblovell

robblovell Aug 9, 2018

Hi, Beyond development of extensions, is support being added for hot reload of the dashboard based on both adding of extensions and configuration changes? I guess this would look something like this:

Add a new extension to App.jsx & server.js, and/or changes to the config.js file would hot reload the dashboard. I would imagine in this mode, that changes to the jsx or js files would run weback and rerun the server. Changes to the config.js file would not require webpack reloads, but the server would need to watch for changes to the config file. (actually, I am unsure if the config file is change if webpack has to run...)

Is this the vision?

robblovell commented Aug 9, 2018

Hi, Beyond development of extensions, is support being added for hot reload of the dashboard based on both adding of extensions and configuration changes? I guess this would look something like this:

Add a new extension to App.jsx & server.js, and/or changes to the config.js file would hot reload the dashboard. I would imagine in this mode, that changes to the jsx or js files would run weback and rerun the server. Changes to the config.js file would not require webpack reloads, but the server would need to watch for changes to the config file. (actually, I am unsure if the config file is change if webpack has to run...)

Is this the vision?

@plouc

This comment has been minimized.

Show comment
Hide comment
@plouc

plouc Aug 9, 2018

Owner

@robblovell, hot reloading UI is for development purpose only as the code isn't optimized and you've got an extra websocket connection.

However the configuration is reloaded when it changes (yaml) and doesn't require a server restart, the UI receives a notification with the new config.

If you add a new extension, you'll have to restart the server though, but something like nodemon could be used, I implemented this workflow for another project.

Owner

plouc commented Aug 9, 2018

@robblovell, hot reloading UI is for development purpose only as the code isn't optimized and you've got an extra websocket connection.

However the configuration is reloaded when it changes (yaml) and doesn't require a server restart, the UI receives a notification with the new config.

If you add a new extension, you'll have to restart the server though, but something like nodemon could be used, I implemented this workflow for another project.

@plouc

This comment has been minimized.

Show comment
Hide comment
@plouc

plouc Aug 9, 2018

Owner

You can try the actual implementation with the master branch, using the following commands:

make init
make demo-install
make demo-start-ui
# another session
make demo-start-server

you have several configs available, you can try another config using:

demo-start-server CONF=conf/config-json.yml

for example

Owner

plouc commented Aug 9, 2018

You can try the actual implementation with the master branch, using the following commands:

make init
make demo-install
make demo-start-ui
# another session
make demo-start-server

you have several configs available, you can try another config using:

demo-start-server CONF=conf/config-json.yml

for example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment