Skip to content

Are these libraries still under development? #1822

Closed

Description

@Bomret

I've been using Rx.NET (and Ix.NET in some projects) since 2014 and really like the programming model. But the last commit here was around 2 years ago. Current issues are discussed among users, pull requests seem to not get merged anymore. And the milestones are all overdue a long time now. I've also not really seen usage of the reactive extensions in other Microsoft products. So is it still being developed? Would you still use it in new projects or is it safer to try to adapt a different programming style, like System.Threading.Channels or plain async/await and IAsyncEnumerable?

I'm not here to troll. I'm genuinely concerned that the library is slowly being abandoned/already has been silently. But I've also just taken a look at this repo now and am a bit concerned by its state.

Activity

  1. HowardvanRooijen commented on Oct 20, 2022

    @HowardvanRooijen
    Collaborator

    On IAsyncEnumerable - have you seen this video? Supporting IAsyncEnumerable with LINQ - https://www.youtube.com/watch?v=Ktl8K2b1-WU
    TPL DataFlow is also a great thing to investigate and it interops with Rx very nicely.

  2. danielcweber commented on Oct 20, 2022

    @danielcweber
    Collaborator

    I think the usual dilemma of OSS ("why isn't this project maintained") only partially applies here, because this repo in particular

    • originated from within Microsoft
    • is under the dotnet foundation umbrella and
    • mentions a "core team" on it's readme (which - disclaimer - I was included in)

    and so might give the impression that there is a number of people (maybe even perceived to be with Microsoft) maintaining Rx (possibly even as part of their day jobs).

    But there is not.

    The last major activity was around 2018/2019 when @ghuntley managed to gather some people around who subsequently did some major rewrites of the Rx operators towards performance and memory-consumption. Occasionally, bugs were fixed and pull requests merged. Requests for new operators were and are usually referred to @akarnokd's extension library. I cannot speak for other contributors, but my efforts were mostly done on company time because we had a major interest in performance gains and lower memory pressure. We met the objective, that's when my efforts in OSS moved on (again, I don't know about anybody else).

    This is open source software. If there is concern about the future of this project I'd kindly ask anybody who is serious about this to step up. If anybody would like to volunteer, I'd suggest they ping @clairernovotny and ask for write-access. Although I do have write access to this repo, I wouldn't want to make the decision of onboarding new maintainers solely by myself.

    As for Rx.Async: AFAIK the code is clean and pretty and functional, but there's no unit tests. Unfortunately, no unit tests no release.

  3. akarnokd commented on Oct 20, 2022

    @akarnokd
    Collaborator

    I did my contributions back in the day too but I haven't done anything since for two reasons: 1) I have zero understanding of the .NET infrastructure behind the project, 2) there seems to be no one left to make decisions about features. So when I rarely need something Rx.NET, I do it myself in my own project.

  4. Bomret commented on Oct 20, 2022

    @Bomret
    Author

    Thanks all for your answers! If I understand it correctly, there is still interest in keeping this project alive by a number of people (measured by the open issues and pull requests) but not really a dedicated team behind it any more and not many contenders to step up and take it over? That's a pity, but the way of a lot of OSS projects. I suggest, to make an announcement to archive this project beginning next year if no new maintainers come up until then so that people know that this is not going to be developed any further. Also looks like I have to rewrite a number of code bases in the future and rip this library out :/

  5. danielcweber commented on Oct 20, 2022

    @danielcweber
    Collaborator

    I don't agree that a project, like Rx, should be archived once active development ceases. I also don't agree that Rx should be 'ripped' out of code bases. The concept of Rx.NET (and reactive programming in general) is still valid and powerful, the implementation is extensive, performant, the operators match those of LINQ (AFAIK) and it's reasonably bug free.

  6. ghuntley commented on Oct 20, 2022

    @ghuntley
    Member

    I suggest, to make an announcement to archive this project beginning next year if no new maintainers come up until then so that people know that this is not going to be developed any further.

    Disagree.

    Also looks like I have to rewrite a number of code bases in the future and rip this library out :/

    Alternatively you could step up and help?

  7. apobekiaris commented on Oct 20, 2022

    @apobekiaris

    And what is the alternative if we drop RX? there is nothing similar, RX is more like a programming model as you mentioned than a lib. As far as updates, note they come with pain. So, unless they give me crypto for free is really hard to update and risk changing the behviour of my systems.

  8. daveposn commented on Oct 20, 2022

    @daveposn
  9. glopesdev commented on Oct 20, 2022

    @glopesdev

    @danielcweber @akarnokd first of all, I want to say thank you so much for your careful steering of Rx in the last few years. Rx has remained critical for the infrastructure behind our visual programming language for 10+ years, and this will not change, so like last time I will always be happy to step up as a contender for maintainer if no one better suited is interested in taking up the mantle, so we can resolve the issue that no one is available to offer dedicated maintenance.

    I agree there is nothing like it, and several other projects depend on it. However it does look like it is going to potentially go through cycles of maintainer renewal, as happened in the past. Maybe it is time to write down some guidelines and criteria on the expectations for releases and maintainers?

  10. daveposn commented on Oct 20, 2022

    @daveposn
  11. Bomret commented on Oct 22, 2022

    @Bomret
    Author

    I'd also like to thank all the contributors for their hard work over the years. Rx has been a great way to model libraries and applications. Regarding stepping up as maintainer I - personally - just do not have the free time and mental resources to be a maintainer for any project anytime soon. I suggested to publicly archive this repo to signify that active development has ceased, as it clearly seems that way and is the de-facto standard to convey this info on Github. So that people don't open issues or PRs because they think it's still being actively maintained. Read the open issues: There are several where people gave up frustratedly because they don't get feedback from maintainers or their PRs just hang around, because they get the impression that this is a live project. Making this a public archive would be the honest way in MY opinion. That would also not mean that the project has become unusable, just that there is no active development anymore. Technology progresses quite fast in the .NET realm these days and Rx will become stale one day. I won't "rip it out" anytime soon, sorry for the problematic language there. But knowing the current state I will probably not implement it in new projects anymore and look for other solutions.

    At least post an announcement (pinned issue) that this project is not being actively developed anymore and that you are looking for people who want to get into that role. Might get to the right people and find you some capable volunteers. And it would convey the info that PRs and issues might not be answered. It would just be honest to the community.

  12. ghuntley commented on Oct 23, 2022

    @ghuntley
    Member

    Update: new maintainers incoming dotnet-foundation/projects#229 (comment)

  13. Bomret commented on Oct 23, 2022

    @Bomret
    Author

    This is so great to hear! Thanks @HowardvanRooijen and others! I'm closing this issue now.

  14. HowardvanRooijen commented on Feb 8, 2023

    @HowardvanRooijen
    Collaborator

    Please see #1868 for the current high level plan.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions