Skip to content

Why is transformLatest still experimental? #3168

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

Open
LouisCAD opened this issue Feb 1, 2022 · 13 comments
Open

Why is transformLatest still experimental? #3168

LouisCAD opened this issue Feb 1, 2022 · 13 comments

Comments

@LouisCAD
Copy link
Contributor

LouisCAD commented Feb 1, 2022

Hello,

I use the transformLatest function a lot in my business logic, and I'm wondering why it's still marked as an experimental API while the other xxxLatest operators are not.

All the best,
Louis CAD

@qwwdfsad
Copy link
Collaborator

qwwdfsad commented Feb 1, 2022

Hi, thanks for the reminder.

Nothing conceptually prevents it, we just haven't bothered by looking into it deeply after the initial release -- API seemed to be well-received and no corner cases were found.

collectLatest is already stable and relies on mapLatest, so I'll take a look at it one more time prior to 1.7.0 release and likely promote it to stable.

Reminder to self: re-visit #3109 prior to stabilization

@Manideepkota0708
Copy link

Hi, thanks for the reminder.

Nothing conceptually prevents it, we just haven't bothered by looking into it deeply after the initial release -- API seemed to be well-received and no corner cases were found.

collectLatest is already stable and relies on mapLatest, so I'll take a look at it one more time prior to 1.7.0 release and likely promote it to stable.

Reminder to self: re-visit #3109 prior to stabilization

#3162 - is this not an issue @qwwdfsad , I'm extremely sorry if I have raised an incorrect issue, I'm new to kotlin coroutines, I'm exploring it to use it in my project.

can someone please reply to that issue, and explain what is happening?

@LouisCAD
Copy link
Contributor Author

@Manideepkota0708 I don't think this is on topic in this issue 🤔

@LouisCAD
Copy link
Contributor Author

@qwwdfsad For this issue we're in, I think it also applies to flatMapLatest, unless there are some reasons for it to stay experimental while transformLatest wouldn't?

@Manideepkota0708
Copy link

@Manideepkota0708 I don't think this is on topic in this issue 🤔
i'm sorry, could some one reply in this thread then?
if it's not at all an issue could someone close it, thereby it helps me to dig further inside coroutines methods, and put some more time in learning them
if it's an issue? then someone at least confirm that it was an issue.

I'm happy that at least you had replied tagging me in this issue @LouisCAD

#3162

@racka98
Copy link

racka98 commented Jul 5, 2022

1.7.0 has launched but they are all still marked as Experimental. Any updates on this?

@remcomokveld
Copy link

1.7.0 has launched but they are all still marked as Experimental. Any updates on this?

1.7.0 of kotlin was released. The coroutines library is still on 1.6.0.

@danielesegato
Copy link

Hey folks! I know you are busy with lot of stuff, but it would be nice to have a new coroutines release with some experimental annotation removed :-) like this one

the 1.6.4 was released this summer

1.6.5 perhaps?

@qwwdfsad
Copy link
Collaborator

We tend to avoid changing API stability guarantees in patch releases, esp. if it is a popular API.
We'll likely do it in 1.7.0 as we still have to put some effort into it and ensure that everything behaves the way we intend it to (see comments above with potential concerns)

@djcsdy
Copy link

djcsdy commented May 18, 2023

Still marked experimental in 1.7.1 :(

@danielesegato
Copy link

Still marked experimental in 1.7.1 :(

Experimental only means that the API might change, it doesn't mean it is unsafe.

It probably just means they aren't yet sure on the name of the function.

@qwwdfsad
Copy link
Collaborator

The problem is not the name but the semantics -- it's unclear whether the underlying coroutine should be launched in an undispatched manner or not.

While sounding like an implementation detail, it, in fact, leaks to users' code -- #3109, and we have conflicting requirements for this behaviour -- #3681 (#3109 in disguise) and #3679

@LouisCAD
Copy link
Contributor Author

Maybe CoroutineDispatcher should expose whether it's single threaded or not? I've bumped into other use cases where I wanted to know about that.

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

No branches or pull requests

7 participants