Page History
...
See Trading reviews on Pull Requests for how to get immediate attention to that PR!
Notes
Opening
Tim welcomed participants and noted the main agenda item: discussion on NX and potential migration of the DSpace Angular UI.
Brief mention of ongoing merger discussions before transitioning to the main technical topic.
Merger Updates
Strategic group is planning a Q&A webinar in the second half of September (exact date TBD).
Format: short presentation on merger progress + ~45 minutes for community questions.
Questions can be submitted in advance via an online form.
- Tim:
No decisions have been made yet; planning work continues.
Recommendations to steering/leadership groups expected in about a month or more.
Still exploring how a merger might be structured technically.
Main Topic: NX Migration Discussion
- Background:
Current Angular UI is monolithic; customization requires code-level changes.
Goals:
Modularization to allow reusable, plugin-like architecture (institutions can build and share small add-ons).
Easier customization management (similar to how XML/JSP UI allowed overlays in earlier DSpace versions).
Backend modularization is possible with Maven modules, but front-end currently lacks equivalent flexibility.
NX is not required to achieve modularization but makes it easier.
Provides tooling for creating and managing libraries, ensuring builds occur in correct order.
Advantage: incremental builds & caching, reducing build times significantly.
- Presentation: Nx Benefits (Giuseppe Digilio, 4Science)
- Giuseppe Digilio presented on using Nx to further modularization; challenges and how to get there
Current Angular app is monolithic → hard to extend, limited for external plugins.
NX helps by:
Structuring code into apps + libraries.
Offering CLI scaffolding, dependency graphs, incremental builds, and caching.
Supporting modular architecture while maintaining developer productivity.
Two approaches:
Standalone (single app + libraries).
Monorepo (multiple apps + shared libs).
Demoed proof-of-concept migration:
Showed creation of libraries (e.g., core functionality separated).
Highlighted speed improvements with cached builds.
Example of custom feature library adding routes independently.
- Questions:
pcg-kk: Raised concerns about NX maintenance:
Version incompatibilities between NX & Angular.
Risk of circular dependencies if modularization isn’t carefully managed.
Observed bugs and open issues in NX community.
Giuseppe Digilio:
Agreed circular dependencies are a risk in any modularization. Scripts and NX configs can help enforce boundaries.
Suggested aligning Angular and NX versions carefully; not seen as a major blocker.
Tim Donohue:
Suggested documenting risks and considering fixed NX versions per DSpace release.
Art Lowel: Questioned impact on merger with DSpace-CRIS.
Concern: CRIS doesn’t use NX currently.
Giuseppe: standalone NX approach minimizes disruption; structure remains similar to current Angular app.
Themes: Question raised about impact on theme upgrades under modularization; needs further exploration.
Backend + frontend bundling: Desire expressed for ways to package both together for customizations. Tim noted NX can wrap other build tools (like Maven/Gradle), so potential exists.
- We will bring this back to next meeting; in the meantime, please add it to this old PR: https://github.com/DSpace/dspace-angular/pull/4019
- Giuseppe will send a copy of the slides to Tim or Holger
Action items