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

Is it worth sponsoring? #1611

Closed
HerrNiklasRaab opened this issue Nov 6, 2021 · 8 comments
Closed

Is it worth sponsoring? #1611

HerrNiklasRaab opened this issue Nov 6, 2021 · 8 comments

Comments

@HerrNiklasRaab
Copy link

Hello together,

Our company is considering sponsoring this project. So I did a little research on how our money would affect the progress of this project, so I hope it's fair to ask a few questions before committing resources to it.

Is there a roadmap to see where this project is headed? The closest I could find is this post from @Krzysztof-Cieslak from more then 1,5 years ago. Looking at his contributions to Ionide in 2020, 2021:
image
image

compared to 2016:
image
In no way I want to be offensive in any way, but it seems like there is a downward trend in the amount of effort that get's put into this project from the admin of this project and the receiver of all the sponsering. The last payout was happening on the 28.Feb.2021. Which makes sense as afterwards the amount of contributions went down. Since 28.Feb.2021 no payout was happening.

As a potential future sponsor, I would rather see this money invested into the project, instead letting the money sit in the bank. So my question is, what will the money be used for in the future? Is there a plan to hire devs etc.?

There seem to be quite some active people like, @baronfel for example.

Even though above seems to be somewhat direct to @Krzysztof-Cieslak, I actually want to thank you for all the effort you put into this project, even long before there was a lot of sponsoring. I also sincerly hope that it is not releated to the burnout that you are describing as this nothing I would wish anyone. But maybe you can take a few moments and bring light into the (financial) future of this project?

Best regards,

Niklas

@open-collective-bot
Copy link

Hey @HerrNiklasRaab 👋,

Thank you for opening an issue. We will get back to you as
soon as we can. Also, check out our OpenCollective and consider
backing us.

https://opencollective.com/ionide

PS.: We offer backer support for all backers. Don't forget to add backer label when you start backing us 😄

@cartermp
Copy link
Contributor

cartermp commented Nov 6, 2021

Taking a step back, the primary issues that affect ionide are related to project loading, F# script support, and .NET SDK support (e.g., you've installed a preview and release SDK which can make ionide act screwy).

This, unfortunately, is very difficult and unsexy work that is hard to find contributors for. And everyone involved in the project at the moment has stable employment, so nobody is working on it full-time.

I don't think more sponsorship money solves this right now. It's a long-term hedge that has allowed for big spikes in development that addressed long-standing performance issues, project loading issues, etc. these tend to be of the "lots of work with few commits" variety so you won't see it in a contributor graph but it's valuable.

What I might suggest instead is investing time for an employee to ramp up on some of the project loading and script context building work. This is where the bulk of problems people have stand today.

@Krzysztof-Cieslak
Copy link
Member

Hey @HerrNiklasRaab 👋

First of all - thanks a lot for even considering supporting Ionide. Any form of support is really appreciated and I'm really thankful for it.

Secondly - you do ask really good questions, and because I do believe in transparency in project management I'll be happy to answer them. However, because they're related not only to me personally, but also to Ionide as a whole, I want to consult with other maintainers before giving any authoritative answers - please give us a few days to come up with a longer answer to those questions. We hopefully should have something ready later this week.

Again, thanks a lot for starting this discussion and sorry for the delayed responses.

@HerrNiklasRaab
Copy link
Author

@Krzysztof-Cieslak Thanks for the message! I am already curious about your answer.

@cartermp I don't quite understand. You don't think more money would help, but at the same time you say an employee is needed. Isn't a team employed by Ionide and backed by sponsoring the goal? Could you clarify, this seems contradictory?

@cartermp
Copy link
Contributor

@HerrNiklasRaab Sorry if there's any misunderstanding. Let me clarify regarding these specific points:

So I did a little research on how our money would affect the progress of this project
Since 28.Feb.2021 no payout was happening.

Contributions to the fund have led to big improvements in the past, but it's hard to predict what those improvements might be and when they arrive. Funding it is a long-term bet.

If you're interested in general progress and/or wish to support Ionide, then helping fund it is great. It will undoubtedly help things in the long-term and it's highly appreciated (this is why I've been helping fund it for years!)

However, if you're looking for specific work to be done right away or on a specific schedule, your best bet is to invest in making direct contributions. For example, if you have a scenario where Ionide doesn't load your projects correctly, the surest way to get that resolved is to set aside time/money to contribute a fix that resolves the issue.

@HerrNiklasRaab
Copy link
Author

Now I understand, thanks for clarifying 🙏

@Krzysztof-Cieslak
Copy link
Member

Krzysztof-Cieslak commented Nov 18, 2021

Hey @HerrNiklasRaab,

First of all, I want to again thank you for considering supporting the project - this means a lot to me. And also, I have absolutely no problem with your questions - I believe in providing transparency in managing OSS projects, and Open Collective is a fully transparent platform (one of the main reasons I decided to use it).

Before discussing any future plans or what's the best way to support Ionide, I want to provide a bit more context around a couple of things you've commented on.

So let's start with the big one - yes, @baronfel has been a more active contributor over the last year or two. And yes, my "level" of contributions is definitely lower than in the early days of Ionide (TBF, I'd be more worried if it were as high as back then, it was definitely not a healthy and sustainable situation, and I've paid my own personal price for that in things more valuable than money).

That said, I have a couple of points (not to defend myself, but to provide some additional context) here:

  • The contribution graphs you've presented are only for Ionide organization while a bunch of work is happening also in other places, mostly fsharp/FsAutocomplete repo, which for historical reasons is not under Ionide organization (however, earlier points still stand - you will see @baronfel as a more active contributor in those other places too)

  • Nowadays, the type of problems we solve in Ionide is entirely different from the project's early days. Back then, we worked on pretty simple issues that we could implement fast because we were still trying to catch up with other editors. Those low hanging fruits are now (mostly) solved. On the other hand, the problems (both in terms of implementing new features and fixing bugs we have) we are dealing with right now are more complex, often requiring days or weeks of research into compiler, .NET runtime or MsBuild. And all you'll see on the contribution graph is a single commit because we've squashed all silly "wip" commits.

  • I feel that I'm still reasonably involved with many contributions you see on the contribution graph from other maintainers. A lot of work happens behind the scenes - brainstorming new ideas, debugging issues, doing the research I've mentioned before, figuring out the design, deciding on user-facing improvements. I talk with @baronfel about the Ionide ecosystem every day.

So now, moving on to the supporting Ionide parts of the questions.

I want to mention here that there's no "team" behind Ionide - it's me, @baronfel and community contributors. There's no one hired to work on it full time. Most contributions have happened in people's spare time.

In the past few years, I used to be an independent consultant, so I had a lot of flexibility regarding how much time I wanted to spend on commercial projects and how much on my OSS work. Founds from Open Collective helped here to justify me spending more time on OSS work.
This has changed earlier this year - after around 7 years of consulting, I have joined GitHub as a normal full-time employee, and I plan to stay there for a while. Because of that, I've decided that taking our money from Open Collective wouldn't be fair (and is not needed in my current position). Similarly, @baronfel has started a new job recently and is also not in a position to spend a significant amount of working hours on Ionide additionally.

In the ideal world, I'd love to work full time on Ionide (or hire someone to do it) using Open Collective money to fund it. However, let's be fair - the current level of support on Open Collective doesn't allow that. We would need to increase the level of contributions by order of magnitude and have some assurance that it's a stable situation, which is an unlikely goal in the short term, especially since several more popular OSS projects haven't achieved this either.

As such, any contributions to the Open Collective, as mentioned by @cartermp, are long-term indeed. They could potentially, as they have in the past, allow one of us to spend a few months working on Ionide full time if any of us decided they wanted to do it.

Additionally, I agree with @cartermp that the best way of supporting Ionide has always been through direct code contributions. I understand this is more difficult than a "throw money at the problem" solution, but I or any other of the maintainers would be super happy to help with that.
It's also the best way of solving any particular problems you have - otherwise, because all the work is done in the spare time of contributors, we can't commit to any timelines or roadmaps right now. The big exception to this was .NET 6 support, which still has some quirks. You can probably expect that .NET 7 will be supported as well in the future, but that's about all that can be committed to right now.

In the end, I want to say that we're all committed to the long term success and sustainability of Ionide. It's the second most popular IDE for F#, it has driven a lot of innovation in the space of F# editor tooling, and it is important for F# adoption (as VSCode is a ridiculously popular editor and has the lowest barrier of entry out of any F# IDEs). So we will continue working hard to make it as good as possible.

@ken-okabe
Copy link

ken-okabe commented Jan 18, 2023

@Krzysztof-Cieslak
Hi, thanks for this project.

According to the Microsoft Official document,
https://learn.microsoft.com/en-us/dotnet/fsharp/get-started/install-fsharp
image

It seems Microsoft really depends on this extension of VSCode which is now the most popular IDE from Microsoft.

The only plugin required for F# support in Visual Studio Code is Ionide-fsharp.

Also, they include ionide in their official VSCode package.
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-pack
image

So, I am surprised to hear that such an important project has been primarily maintained through your personal contributions and not officially supported by Microsoft or the .NET Foundation.

We understand that Microsoft is a very wealthy company and they technically and officially recommend using your extension, but they do not invest anything to maintain this project, am I correct?

This has changed earlier this year - after around 7 years of consulting, I have joined GitHub as a normal full-time employee, and I plan to stay there for a while. Because of that, I've decided that taking our money from Open Collective wouldn't be fair (and is not needed in my current position). Similarly, @baronfel has started a new job recently and is also not in a position to spend a significant amount of working hours on Ionide additionally.

I understand but I really believe the money should come from Microsoft/.NET foundation.

In fact, looking at the official .NET Extension Pack

image

The C# VSCode Extension

This project is supported by the .NET Foundation.

and 3/4 of the extensions in the Extension Pack are from Microsoft, with only ionide being the exception.

Additionally, I agree with @cartermp that the best way of supporting Ionide has always been through direct code contributions. I understand this is more difficult than a "throw money at the problem" solution, but I or any other of the maintainers would be super happy to help with that.
It's also the best way of solving any particular problems you have - otherwise, because all the work is done in the spare time of contributors, we can't commit to any timelines or roadmaps right now.

Given the unique situation, I anticipate that it will be challenging to request F# developers (including me) to contribute for free. This project should be under the .NET foundation, similar to C#, and have a full-time team that is paid for by Microsoft.

I read you currently work for GitHub. I wish you discuss this matter with the .NET foundation people.

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

4 participants