#6367·rxjs

Version 7 -> 8 Roadmap

Author: benleshCreated May 5, 2021Updated Aug 11, 2026
LabelsAGENDA ITEM7.x8.x

NOTE (10/28/2024): RxJS 8 is on hold while observable is being standardized for the web platform. RxJS 8 should match the web platform as much as possible and support it directly. 7.0 is stable, running well, and overall solid.

This issue is outlining what needs to be done in version 7 before we can move to version 8 in earnest.

  1. Once ALL items in version 7 are complete, we can consider moving the 8.x branch to master, and create a 7.x` branch.
  2. Once ALL items in version 8 are finalized and implemented, we can move from 8.x.x-alpha to 8.x.x-beta.

In Version 7

  • groupBy config (#5679)
  • share observable resets (#6169)
  • splitBy (#3807)
  • Add all exports to top level
  • More configurable retry (#6421)
  • More configurable repeat (#6640)
  • Deprecate MapTo variants (#6399, PR: #6860)
  • Deprecate retryWhen/repeatWhen? (#6859)
  • Deprecate onErrorResumeNext operator in favor of onErrorResumeNextWith (#6755)
  • Various selectors/arguments should support ObservableInput
    • delayWhen's notifier (#7049),
    • buffer's closingNotifier (#7073),
    • distinct's flushes (#7081),
    • repeatWhen's notifier (#7103),
    • sample's notifier (#7104),
    • retryWhen's notifier (#7105),
    • sequenceEqual's compareTo (#7102),
    • ShareConfig's resetOnError, resetOnComplete and resetOnRefCountZero (#7093),
    • skipUntil's notifier (#7091) and
    • window's windowBoundaries (#7088)

Before Version 8 is released

  • Remove all deprecated APIs marked to be removed in v8 or marked deprecated ages ago.
  • Remove source parameters from predicates. (Deprecating these via the type system effects problems - see #6361.)
  • Ensure we're publishing only ES2021 or later and CJS. Drop tslib. (#6321)
  • Drop all Internet Explorer support into a pit of flames! IE
  • Idempotent subscription add (#6401)
  • Replace all external uses of any with unknown. (This could likely be non-breaking, FWIW.)
  • productize our internals for creating operators (#6803)
  • Implement [Symbol.asyncIterator]() on Observable (TBD. We should try this out in an alpha, at least. Issue: #6857)
  • Convert repo to monorepo (#6786)
    • Docs app can be a separate project under monorepo
    • Operator Decision Tree can also likely be its own project under monorepo
    • Keep rxjs as "whole package". (It's not going away, ever, really)
    • Publish @rxjs/observable with just Observable.
    • Publish @rxjs/ajax
    • Publish @rxjs/fetch
    • Publish @rxjs/testing
    • Decide on how we'll do other packages: Current thoughts are that we could publish a package for each operator, even. Subjects and multicasting might be trickier, but maybe not. Maybe individual packages is right for all. Needs discussion.
  • ??? TBD

During Version 8