Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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