Story #17426

Support plug-ins

Added by Peter Amstutz about 2 months ago. Updated 13 days ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Start date:
03/16/2021
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
-

Description

Design a plug-in scheme for workbench 2 whereby user extensions can be incorporated (probably compiled in).

Customization points

  • Add entries to the left hand tree to load custom panel; hide default entries
  • Add item to "NEW+"; hide existing items on NEW+
  • Add entries to user menu; hide existing entries from user menu

Plug-in initialization allows adding to a list of plug-in routes and dialogs. WorkbenchPanel dynamic list of routes & dialogs.


Subtasks

Task #17431: Review 17426-plug-insResolvedPeter Amstutz


Related issues

Related to Arvados Epics - Story #16782: Add-on module systemNew01/01/202203/31/2022

Associated revisions

Revision 31e84a93
Added by Peter Amstutz 13 days ago

Merge branch '17426-plug-ins' refs #17426

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <>

History

#1 Updated by Peter Amstutz about 2 months ago

  • Description updated (diff)

#2 Updated by Peter Amstutz about 2 months ago

#3 Updated by Peter Amstutz about 2 months ago

  • Target version changed from 2021-03-17 sprint to 2021-03-03 sprint

#4 Updated by Peter Amstutz about 2 months ago

  • Assigned To set to Peter Amstutz
  • Status changed from New to In Progress

#5 Updated by Peter Amstutz about 2 months ago

  • Target version changed from 2021-03-03 sprint to 2021-03-17 sprint

#6 Updated by Lucas Di Pentima about 1 month ago

Some comments:

  • Unit test are failing
  • I wonder how we can make plugins writers' life easier by not needing to attach their code to wb2's code tree?
  • Looking for react apps plugin patterns I got to an article that made a good point: adding 3rd party code potentially exposes the whole app to plugin errors that make the entire app crash. I've found this that may be useful: https://reactjs.org/docs/error-boundaries.html#introducing-error-boundaries

#7 Updated by Peter Amstutz about 1 month ago

  • Target version changed from 2021-03-17 sprint to 2021-03-31 sprint

#8 Updated by Peter Amstutz 19 days ago

Lucas Di Pentima wrote:

Some comments:

  • Unit test are failing

They are passing for me, test run here:

https://ci.arvados.org/view/Developer/job/developer-tests-workbench2/359/

  • I wonder how we can make plugins writers' life easier by not needing to attach their code to wb2's code tree?

The intended way to do it is now "write it in another repo, check it out under src/plugins".

It seems like it could theoretically discover them without modifying the "plugins.tsx" file but that would involve digging deep into webpack.

I think this is not much different from isolating errors in our own code (which wb2 doesn't do very well). That sounds like it is worth doing but I don't know if it should be a blocker for this branch.

17426-plug-ins @ commit:370d78f65bca409aa1a295d94a96436959b568ae

#9 Updated by Peter Amstutz 18 days ago

  • Target version changed from 2021-03-31 sprint to 2021-04-14 sprint

#10 Updated by Lucas Di Pentima 18 days ago

  • File src/plugins/README.md - Line 56: there's an incomplete sentence.
  • As a final comment: I think it would be nice to have a way to ensure in some degree that we're not breaking plugin compatibility without knowing. Not sure if it's a project on its own, though.

Other than that, it LGTM.

#11 Updated by Peter Amstutz 13 days ago

Lucas Di Pentima wrote:

  • File src/plugins/README.md - Line 56: there's an incomplete sentence.

Yea, I was distracted and didn't finish writing it. Fixed.

  • As a final comment: I think it would be nice to have a way to ensure in some degree that we're not breaking plugin compatibility without knowing. Not sure if it's a project on its own, though.

I think that if we have more than a few of these, it will be worth setting up integration test infrastructure specifically for the plugins (something that enables a plugin and runs tests for that specific plugin). We're not quite there yet.

Other than that, it LGTM.

Ok! Merged!

#12 Updated by Peter Amstutz 13 days ago

  • Status changed from In Progress to Resolved

Also available in: Atom PDF