Project

General

Profile

Actions

Idea #17426

closed

Support plug-ins

Added by Peter Amstutz about 3 years ago. Updated almost 3 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Story points:
-
Release relationship:
Auto

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 1 (0 open1 closed)

Task #17431: Review 17426-plug-insResolvedPeter Amstutz03/16/2021Actions

Related issues

Related to Arvados Epics - Idea #16782: Add-on module systemNewActions
Actions #1

Updated by Peter Amstutz about 3 years ago

  • Description updated (diff)
Actions #2

Updated by Peter Amstutz about 3 years ago

Actions #3

Updated by Peter Amstutz about 3 years ago

  • Target version changed from 2021-03-17 sprint to 2021-03-03 sprint
Actions #4

Updated by Peter Amstutz about 3 years ago

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

Updated by Peter Amstutz about 3 years ago

  • Target version changed from 2021-03-03 sprint to 2021-03-17 sprint
Actions #6

Updated by Lucas Di Pentima about 3 years 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
Actions #7

Updated by Peter Amstutz about 3 years ago

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

Updated by Peter Amstutz about 3 years ago

Lucas Di Pentima wrote:

Some comments:

  • Unit test are failing

They are passing for me, test run here:

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 @ 370d78f65bca409aa1a295d94a96436959b568ae

Actions #9

Updated by Peter Amstutz about 3 years ago

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

Updated by Lucas Di Pentima about 3 years 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.

Actions #11

Updated by Peter Amstutz about 3 years 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!

Actions #12

Updated by Peter Amstutz about 3 years ago

  • Status changed from In Progress to Resolved
Actions #13

Updated by Peter Amstutz almost 3 years ago

  • Release set to 38
Actions

Also available in: Atom PDF