Skip to content
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

Moving forward with Ruby 3+ only implementation. #112

Closed
ioquatix opened this issue Apr 25, 2021 · 1 comment
Closed

Moving forward with Ruby 3+ only implementation. #112

ioquatix opened this issue Apr 25, 2021 · 1 comment

Comments

@ioquatix
Copy link
Member

#23 discusses a fundamental shift in Fiber scheduling which is implemented in #111 which may warrant a major version bump, even if Async and its "public" interfaces are largely the same and work almost the same way.

My general thought right now is one of:

  • Async 1.x -> current approach, Async 2.x -> Ruby 3+ only.
  • Async 1.29.x -> current approach, Async 1.30.x -> Ruby 3+ only.

The core Async interface is almost the same, the semantic model is almost the same. I ran external tests and most of my systems work the same on async master and this proposed branch. So, from the outside, it looks largely the same. The main issue would be whether bundler can figure out to us 1.29 on Ruby < 3.0 which sadly I don't think is true.

Therefore, I think it might be pragmatic to release Async 2.x and really polish the interfaces with all the knowledge we gained during 1.x and Ruby 3. I still need to think about it.

@ioquatix
Copy link
Member Author

ioquatix commented May 8, 2021

After discussing this we have the following outcome.

We are planning to define a stable interface (LTS) for Async 1.x and 2.x which will be compatible between releases for at least 3 years. Async 1.x will be EOL when Ruby 3.0 is EOL. Until then, we will maintain feature parity between them.

@ioquatix ioquatix closed this as completed May 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant