Skip to content

Moving forward with Ruby 3+ only implementation. #112

@ioquatix

Description

@ioquatix

#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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions