Page History
...
| Warning | ||
|---|---|---|
| ||
Daylight Saving Time is ending soon throughout the world:
Upcoming DSpace Developer Meeting Times:
|
| Info | ||
|---|---|---|
| ||
|
...
See Trading reviews on Pull Requests for how to get immediate attention to that PR!
Notes
1. Housekeeping and Updates
Daylight Savings Reminder:
Next week’s meeting will be at 15:00 UTC, which means a temporary shift by one hour for North American participants.
Europe remains unchanged.
Meeting will settle at 15:00 UTC going forward until next year.
Tim will post reminders in Slack and agenda notes.
Merger Discussions:
Strategic and technical groups are finalizing initial reports for Steering.
Expectation: potential decision within a month.
Steering and Leadership will review feedback and either return questions or move toward decision-making.
2. Main Topic — Modularization Work (NX vs Angular Workspaces)
A. Art Lowel’s Presentation
Demonstrated: Angular CLI workspace-based prototype.
Created a customization library using standard Angular CLI commands (
ng generate library).Custom components (e.g., featured items component) added as proof of concept.
Integration tested with the main DSpace Angular app.
Key Points from Art’s Demo:
Each library is generated quickly (1–2 minutes setup).
Libraries can be built together or separately, but currently configured to build together for convenience.
Suggests moving main app code into libraries to respect boundaries and improve modularization.
Noted issue: components in main app still require relative imports rather than library imports.
Recommends separating tests and scripts into dedicated libraries.
B. Comparative Discussion: Angular Workspaces vs NX
| Aspect | Angular CLI Workspaces | NX |
|---|---|---|
| Setup Complexity | Simple, no new dependency | Adds major new dependency |
| Build Speed | Slower (no caching) | Faster (supports caching, modular build) |
| Tooling | Basic Angular tools | Extra tools: dependency graphs, strict boundaries |
| Development Convenience | Straightforward; minimal learning curve | Enforces strict rules; higher learning curve |
| Maintenance | Easier; no added layer | Potentially slower upgrades |
| Opinionated Decisions | Flexible | Enforces “best practices” automatically |
| Migration | Could migrate to NX later, but initial attempt failed due to custom Webpack | Provides ready migration structure |
C. Technical Issues Identified
Custom Webpack build is deprecated.
→ Consensus to migrate to ESBuild (used by Angular and NX).Test structures should be split from modules.
Scripts folder violates module boundaries → needs conversion into its own library.
Automated index file generation (using Barrelsby or similar) required; currently manual.
3. Opinions and Leanings
Art Lowel:
Slightly prefers Angular workspaces (simpler, no extra dependency).
Open to NX if consensus supports it.
Emphasizes removing Webpack and modularizing either way.
Giuseppe Digilio (4Science):
Prefers NX due to tooling and caching advantages.
Main priority: agreement on moving to library-based architecture, regardless of framework.
Later clarified preference to modularize gradually, not by moving everything into one library.
Kim Shepherd:
Asked whether NX’s opinionated design could restrict flexibility or improve consistency.
Concerned about potential over-restriction for custom development.
Sasha and Martin:
Both opposed adding NX — adds tooling complexity to already heavy frontend stack.
Tim Donohue:
Neutral, leans toward simplicity.
Concerned about increasing complexity for new developers.
Wants both prototypes (NX and workspaces) available for direct comparison before deciding.
4. Decisions and Agreements
✅ Agreed:
Move DSpace frontend toward a modular, library-based structure.
Proceed to merge current PR (library-based refactoring:
core,config,utils) after resolving conflicts.Create tickets to:
Replace custom Webpack with ESBuild.
Refactor scripts into a library.
Move app-level code into libraries (future step).
Draft PR of Art’s workspace prototype will be shared for side-by-side comparison with NX PR.
- Art shared link to PR at the end of the meeting: https://github.com/DSpace/dspace-angular/pull/4783
⚙️ Pending Decisions:
Whether to adopt NX or stick with Angular CLI workspaces.
How to handle app directory structure (single app module vs multiple smaller libraries).
5. Next Steps / Action Items
| Task | Owner | Due / Notes |
|---|---|---|
| Update and merge current modularization PR (core/config/utils) | Giuseppe / Art | High priority |
| Draft PR for workspace prototype (for comparison) | Art | Shared already at https://github.com/DSpace/dspace-angular/pull/4783 |
| Create ticket to replace custom Webpack with ESBuild | Art | For DSpace 10 |
| Create tickets to refactor scripts + app directory | Art | Planned for DSpace 10 |
| Review both NX and Workspace prototypes | Tim, Giuseppe, Committers | Before next meeting |
| Decide on approach (NX vs Workspaces) | Team consensus | Next few weeks |
| Communicate final time change for meetings | Tim | Slack + agenda |
6. Summary
All agree on moving away from monolithic Angular frontend toward modular structure.
Core debate remains NX vs Angular CLI workspaces.
Workstreams are now clearly defined:
Merge existing PR
Replace Webpack
Prototype comparison
Decide final architecture for DSpace 10