Version 7 -> 8 Roadmap
Open
Nobody has claimed this yet.
7.x
8.x
AGENDA ITEM
- Dominant language
- TypeScript
- Stars
- 31.7k
- Forks
- 3k
- PR merge metrics
- No merged PRs in 30d
Description
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.
- Once ALL items in version 7 are complete, we can consider moving the
8.xbranch tomaster, and create a7.x` branch. - Once ALL items in version 8 are finalized and implemented, we can move from
8.x.x-alphato8.x.x-beta.
In Version 7
-
groupByconfig (#5679) -
shareobservable resets (#6169) -
splitBy(#3807) - Add all exports to top level
- More configurable
retry(#6421) - More configurable
repeat(#6640) - Deprecate
MapTovariants (#6399, PR: #6860) - Deprecate
retryWhen/repeatWhen? (#6859) - Deprecate
onErrorResumeNextoperator in favor ofonErrorResumeNextWith(#6755) - Various selectors/arguments should support
ObservableInput-
delayWhen'snotifier(#7049), -
buffer'sclosingNotifier(#7073), -
distinct'sflushes(#7081), -
repeatWhen'snotifier(#7103), -
sample'snotifier(#7104), -
retryWhen'snotifier(#7105), -
sequenceEqual'scompareTo(#7102), -
ShareConfig'sresetOnError,resetOnCompleteandresetOnRefCountZero(#7093), -
skipUntil'snotifier(#7091) and -
window'swindowBoundaries(#7088)
-
Before Version 8 is released
- Remove all deprecated APIs marked to be removed in v8 or marked deprecated ages ago.
- Remove
sourceparameters 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
anywithunknown. (This could likely be non-breaking, FWIW.) - productize our internals for creating operators (#6803)
- Implement
[Symbol.asyncIterator]()onObservable(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
rxjsas "whole package". (It's not going away, ever, really) - Publish
@rxjs/observablewith justObservable. - 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
- Create new schedulers and deprecate old schedulers.
- Implement
Symbol.asyncIteratoron observable. (https://github.com/ReactiveX/rxjs/discussions/6779)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin with the unchecked items in this issue and the referenced issues, including #6361, #6857, and #6786; no source files or tests are named. Clarify which Version 8 milestone and checklist item to take on, then use completion of that item as the definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100