Skip to content

Version 7 -> 8 Roadmap #6367

Open
Open
@benlesh

Description

@benlesh

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

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 chore: deprecate thisArg signatures #6361.)
  • Ensure we're publishing only ES2021 or later and CJS. Drop tslib. (ESM version is never used #6321)
  • Drop all Internet Explorer support into a pit of flames! 🔥 IE 🔥 🥳
  • Idempotent subscription add (feat(Subscription): idempotent add and remove of teardowns #6401)
  • Replace all external uses of any with unknown. (This could likely be non-breaking, FWIW.)
  • productize our internals for creating operators (Productize operator creation internals #6803)
  • Implement [Symbol.asyncIterator]() on Observable (TBD. We should try this out in an alpha, at least. Issue: Implement Symbol.asyncIterator on Observable #6857)
  • Convert repo to monorepo (Monorepo and Splitting Out To Different Packages #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

Metadata

Metadata

Assignees

No one assigned

    Labels

    7.xIssues and PRs for version 7.x8.xIssues and PRs for version 8.xAGENDA ITEMFlagged for discussion at core team meetings

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions