[UXPROD-2889] Split stripes-core Created: 07/Jan/21  Updated: 12/Jan/23

Status: In Progress
Project: UX Product
Components: None
Affects versions: None
Fix versions: None

Type: New Feature Priority: P3
Reporter: Michal Kuklis Assignee: Khalilah Gambrell
Resolution: Unresolved Votes: 0
Labels: NFR, tech-debt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Blocks
blocks STCOR-498 Add support for creating DLL with str... Closed
Relates
relates to STCOR-663 Remove stripes web parts from stripes... Closed
relates to STRIPES-830 SPIKE - investigate whether ui-stripe... Closed
relates to STRIPES-831 SPIKE - stripes-core split figure out... Closed
relates to STRIPESUI-2 Move stripes web parts into stripes-ui Closed
relates to ERM-2589 Update dependencies for Stripes v8 Co... Closed
relates to STCOR-488 Override metadata based on domain to ... Closed
relates to STRIPESUI-1 Create stripes-ui project Closed
relates to STCOR-511 separate webpack config into its own ... Closed
relates to STRWEB-4 Upgrade webpack to version 5. Closed
relates to ERM-2537 Check Stripes v8 Compatibility Closed
Development Team: Stripes Force
PO Rank: 0
PO Ranking Note: Holly set the PO Rank to the default (zero) for now so the PO's features sort properly in the filter.

 Description   

Our current stripes-core setup bundles a lot of parts together:

  • stripes-cli
  • webpack
  • stripes-config (okapi getModule)
  • permissions, contexts, providers used by ui modules
  • testing context

This is currently causing some limitations. The most recent issues are:

We should consider splitting it up. After working on FOLIO-2673 Closed for a bit this structure came to my mind:

Static - possible to package in vendor DLL:

  1. 3rd party libs (react, redux, etc)
  2. stripes vendor (all stripes-* modules) this includes stripes-core (permissions, stripesConnect, AppIcon, IntlConsumer, providers, webpack and basically all imports from stripes-core used currently from various ui-modules).

Dynamic - build based on a given stripes.config.js:

  1. stripes-config (includes okapi config, branding, etc) (possible to build into a separate webpack entry so it can be swapped without full rebuild STCOR-488 Closed )
  2. stripes-modules (entry points for ui modules, currently available via stripes-config getModule)
  3. stripes-web a tiny umbrella app which consumes stripes-core, stripes-config and stripes-modules

Definition of done

  • Eliminates circular dependencies (mitigates the issues we had with reactv17)
  • Easier to update/rebuild OKAPI config file
  • Support improved stripes pre-compile bundle (goal is to make it 10X faster than now)
  • Improved cached mechanism with the use of webpack 5

Generated at Fri Feb 09 00:27:41 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.