-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Version 7 -> 8 Roadmap #6367
Comments
🔥 IE 🔥 🥳 - every time I see that statement in some repo it makes my day better |
Since "??? TBD" seems to imply we can suggest anything, what about #2686? It seems to be a recurring "issue" people are having to configure headers for every request (most popular seem to be While it's not "hard" to make your own |
Deprecating MapTo variants, as they were only wrappers around the Map variants, and added unnecessary API surface area. related ReactiveX#6367
Deprecating MapTo variants, as they were only wrappers around the Map variants, and added unnecessary API surface area. related ReactiveX#6367 resolves ReactiveX#6399
Wouldn't publishing multiple packages for what is essentially the same code actually increase risk of non tree shakable use-case and thus increase bundle size ? As seen with lodash, if one of my dependency decides to depends on the future And of course it would be much worse if we actually publish a package for each operator. Then a single operator could be bundled three times if my deps happened to depend on I could also imagine compatibility issues if one of my dependency depends on an old version of That seems a lot of tricky tradeoffs to attempt to solve the issue of bundle size that is already properly solved by tree shaking. Is that really worth it ? 🤔 |
It looks like the items for version 7 are all done except one. Is there any progress? Feels a bit stagnated ): |
Do you honestly think this signature change on the subscribe, etc. methods is critical enough to cause billions of lines of code change across the internet? |
You seem to have "Publish |
@benlesh, it seems development toward v8 is picking up lately. However I am not aware that the concerns expressed in #6367 (comment) and #6786 (comment) have been addressed. And it seems a few persons are sharing those concerns. Is the plan still to split in multiple, possibly redundant, packages ? What's the team opinion about the pitfalls of such a strategy, as experienced by |
have you considered 8.x being your first esm-only version of rxjs? seems to me it is the ideal opportunity to do that. we're now at a point where most consumers are on a version of node which is capable of importing ESM packages, and all popular bundlers are too. anyone who can only use CJS must be on a fairly old node version, so are likely going to be fine sticking to rxjs 7.x. there's a few hazards and disadvantages with dual packages (esm + cjs), and the complexity of the build scripts for contributors/maintainers etc. you mentioned you considered publishing CJS and ESM packages separately, but i wouldn't bother to be honest. many other packages have already moved to pure ESM and consumers managed fine, imo we could do the same here. |
It shouldn't... |
Yes. In order to align with native observables, the change to |
We can't really do this yet. There are way too many people using RxJS with CJS still. Myself included. |
For those of you wondering about the path of different packages for each thing... the primary motivator is around how many libraries choose to use some other, untested, and or cobbled-together observable implementation because they "don't want all of RxJS". This causes us to end up shipping our observables alongside other people's observables in the same bundles, and then it causes developers to need to deal with interop, etc. Ideally, we can convince developers that want observables to use the most battle tested and common implementation, at least until native observables land. |
What is the status of this? |
Right now, version 8 is on hold because it doesn't make sense to release a new major version of RxJS, then have to write a new major version to match the observable landing in the Web Platform. |
@benlesh Is the idea then that version 8 will eventually be released using a polyfilled version of the Web Platform observable? |
There will be an optional polyfill, or an identical observable to directly import. The RxJS observable will pass all web platform tests as well, and there will be some backwards compat solution. |
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.
8.x
branch tomaster, and create a
7.x` branch.8.x.x-alpha
to8.x.x-beta
.In Version 7
groupBy
config (feat(groupBy): Support named arguments, support ObservableInputs for duration selector #5679)share
observable resets (feat(share): use another observable to control resets #6169)(Deprecate partition, add splitBy method that multicasts the source sequence #3807)splitBy
retry
(feat(retry): Add configurable delay #6421)repeat
(feat(repeat): now has configurable delay #6640)MapTo
variants (DeprecatingMapTo
variants. #6399, PR: chore: deprecate MapTo variants #6860)retryWhen
/repeatWhen
? (Deprecate retryWhen and repeatWhen #6859)onErrorResumeNext
operator in favor ofonErrorResumeNextWith
(feat(onErrorResumeNextWith): renamedonErrorResumeNext
and exported from the top level #6755)ObservableInput
delayWhen
'snotifier
(feat(delayWhen):delayWhen
'sdelayDurationSelector
should supportObservableInput
#7049),buffer
'sclosingNotifier
(feat(buffer): closingNotifier should support ObservableInput #7073),distinct
'sflushes
(feat(distinct):flush
supportsObservableInput
#7081),repeatWhen
'snotifier
(feat(repeatWhen):notifier
supportsObservableInput
#7103),sample
'snotifier
(feat(sample):notifier
supportsObservableInput
#7104),retryWhen
'snotifier
(feat(retryWhen):notifier
supportsObservableInput
#7105),sequenceEqual
'scompareTo
(feat(sequenceEqual): compareTo should support ObservableInput #7102),ShareConfig
'sresetOnError
,resetOnComplete
andresetOnRefCountZero
(feat(share): ShareConfig factory properties should support ObservableInput #7093),skipUntil
'snotifier
(feat(skipUntil): notifier should support ObservableInput #7091) andwindow
'swindowBoundaries
(feat(window): windowBoundaries should support ObservableInput #7088)Before Version 8 is released
source
parameters from predicates. (Deprecating these via the type system effects problems - see chore: deprecate thisArg signatures #6361.)any
withunknown
. (This could likely be non-breaking, FWIW.)[Symbol.asyncIterator]()
onObservable
(TBD. We should try this out in an alpha, at least. Issue: Implement Symbol.asyncIterator on Observable #6857)rxjs
as "whole package". (It's not going away, ever, really)@rxjs/observable
with justObservable
.@rxjs/ajax
@rxjs/fetch
@rxjs/testing
During Version 8
Symbol.asyncIterator
on observable. (Implement Symbol.asyncIterator on Observable #6779)The text was updated successfully, but these errors were encountered: