Skip to content

chore(deps): upgrade rxjs 6 → 7#114

Open
trungvose wants to merge 3 commits into
mainfrom
prep/rxjs-7
Open

chore(deps): upgrade rxjs 6 → 7#114
trungvose wants to merge 3 commits into
mainfrom
prep/rxjs-7

Conversation

@trungvose

Copy link
Copy Markdown
Owner

Why

  • RxJS 6 has been EOL since 2022 — no security patches.
  • .toPromise() is deprecated; modern alternatives are firstValueFrom / lastValueFrom.
  • Angular 17 → 20 all accept RxJS 6 or 7 per peer deps, so this is hygiene rather than a hard blocker. Landing it before the Angular series keeps subsequent PRs focused.

What changed

  • rxjs: 6.6.6 → 7.8.1
  • No source changes required — defensive sweeps returned zero hits:
    • .toPromise( in apps/ + libs/ → 0
    • Observable.create( → 0
    • Legacy combineLatest(a, b, c) spread form → 0 (all 13 sites use array form)
    • partition free function → 0
  • yarn.lock now has a single RxJS family (7.x)

Validation

  • yarn install clean
  • yarn nx build angular-spotify passes (22s, no RxJS-related errors)
  • yarn start boots, responds on :4200
  • Manual browser check: Spotify OAuth completes, home dashboard renders with Recently Played + Popular Playlists grids (both driven by NgRx effects using RxJS operators)

Pre-existing lint and test failures were verified against `main` and are not introduced by this PR.

Part of the Angular 17 → 20 migration plan: `docs/plans/2026-04-18-angular-20-migration-plan.md`
Brief: `docs/plans/prep/2.3-rxjs-7.md`

🤖 Generated with Claude Code

trungvose and others added 2 commits April 18, 2026 14:48
RxJS 6 has been EOL since 2022. Angular 17 through 20 all accept
rxjs@^6.5.3 || ^7.4.0 via peer deps, so this isn't a hard blocker for
the Angular 17 -> 20 migration, but landing it first keeps subsequent
PRs focused and drops the deprecated toPromise() surface.

- rxjs: 6.6.6 -> ^7.8.0 (resolved 7.8.1)
- no toPromise(), Observable.create(), or legacy combineLatest spread
  form hits in apps/ or libs/ (defensive sweep verified)
- no removed-operator surprises (no `partition` free function, no
  `resultSelector` arg usage)

Part of the Angular 17 -> 20 migration plan:
docs/plans/2026-04-18-angular-20-migration-plan.md
Captured via playwriter on the dev server after completing Spotify OAuth.
Confirms the home dashboard renders (sidebar + Recently Played + Popular
Playlists) on RxJS 7.8.1, NgRx effects driving the data, no console errors.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@trungvose

Copy link
Copy Markdown
Owner Author

Visual verification

Captured via playwriter on the dev server after completing Spotify OAuth. Confirms the home dashboard renders on RxJS 7.8.1, NgRx effects still drive the data correctly, no console errors.

Prep 2.3 RxJS 7 verification

Source: `docs/plans/prep/evidence/prep-2.3-rxjs-7.png`

Resolves conflicts in package.json and yarn.lock by keeping rxjs ^7.8.0
on top of the ng-zorro 17, @sentry/angular 8, and cypress-removal updates
already landed on main.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant