Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to Angular 16 #2752

Closed
tdonohue opened this issue Jan 18, 2024 · 5 comments · Fixed by #2871
Closed

Upgrade to Angular 16 #2752

tdonohue opened this issue Jan 18, 2024 · 5 comments · Fixed by #2871
Assignees
Labels
claimed: 4Science 4Science team is working on this issue & will contribute back code task high priority
Milestone

Comments

@tdonohue
Copy link
Member

tdonohue commented Jan 18, 2024

Angular 15 LTS ends on 2024-05-18: https://angular.io/guide/releases#actively-supported-versions

We should use this opportunity to upgrade to the latest version of Angular (v17). See https://update.angular.io/ for details

Dependencies:
As discussed in today's DevMtg, this work will be dependent on #2750 , described in more detail at https://wiki.lyrasis.org/display/DSPACE/Migration+to+Standalone+Components

Any work on this upgrade should be based off that PR 2750 because Angular 17 recommends standalone components.

Related Work:
Several past Angular upgrades can be used as a reference, if necessary

@tdonohue
Copy link
Member Author

@artlowel: As discussed in today's meeting, assigning this to you for you/your team to work on. Ideally, it'd be good to understand if this is likely to take the (usual) 30-50 hours of effort, or if you anticipate it requiring additional time.

@tdonohue tdonohue moved this from 📋 To Do to 🏗 In Progress in DSpace 8.0 Release Jan 18, 2024
@tdonohue tdonohue added the claimed: Atmire Atmire team is working on this issue & will contribute back label Jan 18, 2024
@atarix83
Copy link
Contributor

@artlowel @tdonohue

We shortly analyzed if upgrade to Angular 16 is shorter to do for DSpace 8.0 release.
The main issue is that the view engine is no longer supported

MicrosoftTeams-image (1)

So it means that third party libraries we depend on are no longer supported. Here the current list

  • ng2-file-upload -> there is a new version which support Angular 16, so it's not a problem
  • ngx-sortablejs -> it's only used by the chips.component so probably we can replace the current implementation by using the angular cdk drag/drop module. Rough estimation 24 hours
  • markdown-it-mathjax3 -> we need to find something similar
  • angular-idle-preload -> it seems no longer used and probably can be just removed as dependency

@tdonohue
Copy link
Member Author

tdonohue commented Feb 15, 2024

Regarding markdown-it-mathjax3... a few possible brainstorms

  • I've noticed that markdown-it-mathjax3 is really tiny in terms of its unique code (~200 lines of code). That makes me wonder if we could somehow get away with just using markdown-it and MathJax directly? Maybe we can remove this dependency and do it ourselves somehow?
  • mathjax-angular claims to support MathJax 3 in Angular 17. It's not a markdown-it plugin though, so we may need to rework the code a bit to support it.

@tdonohue tdonohue assigned atarix83 and unassigned artlowel Feb 22, 2024
@tdonohue tdonohue added claimed: 4Science 4Science team is working on this issue & will contribute back and removed claimed: Atmire Atmire team is working on this issue & will contribute back labels Feb 22, 2024
@tdonohue tdonohue changed the title Upgrade to Angular 17 Upgrade to Angular 16 or 17 Feb 22, 2024
@ybnd
Copy link
Member

ybnd commented Mar 14, 2024

Something to consider for this upgrade (or the next): Karma is no longer in active development

Angular is moving to Jest and we should too (it's still "experimental" in v16 though)

@saschaszott
Copy link
Contributor

saschaszott commented Mar 19, 2024

I would prefer upgrading to Angular 17 since

  • Angular 16 support ends in almost 6 months (expeced EOL date is 2024-11-08)
  • in Angular 17 promises faster builds as Webpack is replaced by more efficient builders (esbuild and Vite)
  • Server-Side Rendering improvements (Angular Universal is replaced by @angular/ssr)

@atarix83 atarix83 mentioned this issue Mar 21, 2024
8 tasks
@github-project-automation github-project-automation bot moved this from 🏗 In Progress to ✅ Done in DSpace 8.0 Release Apr 4, 2024
@tdonohue tdonohue changed the title Upgrade to Angular 16 or 17 Upgrade to Angular 16 Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
claimed: 4Science 4Science team is working on this issue & will contribute back code task high priority
Projects
No open projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

5 participants