How to fund a fix in Scala, zinc, sbt or other related tools?

Recently I have reproduced an issue and I have strong interest in fixing it, but I lack capabilities to do so. In the topic where the issue is investigated, I got this comment:

Re: A lot of code compiled on a small change (local variable name change) · Issue #1396 · sbt/zinc · GitHub

open source software with no warrantees.
any additional ham and cheese should ideally be … or purchased via some consultancy

Indeed, I would gladly “purchase” (fund) a fix. How could I do that?

Sometimes there are also Scala 3 issues which does not seem be raise any interest, but are important for me and I would be willing to pay for get them fixed (e.g. Error message in log when compiling: BufferStrategyPaintManager$ with Java 17+ · Issue #20438 · scala/scala3 · GitHub). Is there someone willing to fix such issues as paid work?

2 Likes

You can try to create bounties like Li Haoyi does. You could try posting it here, on Reddit, on Discord, on the Discussion boards of those repositories, etc.

But I’m not sure if this would work; after all you are not the owner of Scala, Zinc, Sbt repositories. Even if someone submits a patch, the maintainers might not accept it. (Would you still pay the person who submitted the patch in that case?)

For things like Sbt, you can try sponsoring the maintainers, for example Eugene has a Sponsor button on his Github.

But again, I don’t know if you can make them fix a specific bug with money, as sponsorship is more of an “ongoing general support” thing and does not buy you direct control. Maintainers would still keep control over the direction and priorities of the project.

So I don’t see it as “anyone willing to do it as paid work” issue but rather “would the maintainers allow it” issue. I remember reading about some example where even Microsoft could not convince open source maintainers (with thousands of dollars) to fix specific bugs that were a priority for them.

4 Likes

Three organizations that I can think of:

  • VirtusLab. VirtusLab has a strong track record of sending patches to compiler and incremental compiler. They are so good, they current steward Scala 3 compiler.
  • Lightbend. Lightbend was former steward of Zinc.
  • Scala Center. Scala Center does not do consulting per se, but as they are the current owner of sbt and Zinc, funding them would fund these toolings.

Other direct avenue:

  • I wouldn’t normally remind people that Zinc is open source etc, but in the linked issue I felt I should remind that partly to the student who got roped into the issue, and now they were saying “so sorry I hadn’t made progress. I will spent my weekend fixing this.” Maybe a bounty would be good.

For things like Sbt, you can try sponsoring the maintainers, for example Eugene has a Sponsor button

I’m not open for gigs, at least not currently.

So I don’t see it as “anyone willing to do it as paid work” issue but rather “would the maintainers allow it” issue. I remember reading about some example where even Microsoft could not convince open source maintainers (with thousands of dollars) to fix specific bugs that were a priority for them.

This is a good point. Zinc does have a good track record of working with Friendseeker and/or aforementioned organizations like VirtusLab, so if the feasibility etc is discussed in a GitHub issue or privately, hopefully this is not a huge concern.

1 Like

In the old days, all it took was pizza and beer.

The “right” answer to getting the behavior you want is “fork it”.

Of course, that isn’t usually viable, but why not?

As an example, it’s annoying just to test a local version of the compiler: in a project with many dependencies, if I don’t want to build them all, close coupling of the tool chain means I have to locally publish a “sham” version. (The other meaning of “sham” as a species of bed linen was in today’s “Connections” puzzle.)

Since sbt already does a dance to build its “compiler interface”, it could also construct a toolchain with patches. I took a moment while watching the movie “Hair” to read the newspaper announcement Berger notices on the ground: it is a “thé dansant”, an elaborate garden party of extended duration. The sbt dance could become a tea dance that produces, at its conclusion, a toolchain with arbitrarily patched components.

That is probably a “pipe dream” (to invoke another bygone cultural metaphor, which is now taken to mean “can I have |>”).

2 Likes

Ha. I remember working at some big self-important investment bank where we reported a bug in the C++ operator delete[] which they wouldn’t fix. We’ve all got priorities, it seems.

Got to admit, if they offered to pay me to fix bugs and add features to my open source bits and bobs, I’d jump at the opportunity. Given said BnB’s have amassed around thirty stars on GitHub, that’s probably wishful thinking…

(Still, thanks to those who starred. Recognition is a strong motivator for me, more so than bounties would be, unless we’re talking contract rates. Please don’t take them away, they are all precious…:sweat_smile:)

(I’m just sort of thinking out loud, because it’s an interesting subject… but:)

This is where it could matter whether your bounty is going to go to a total rando, or to someone with a good track record in the community.

If it’s a total rando, then you shouldn’t be willing to pay them by the hour, because then you don’t know what you’re getting and you might get ripped off. So that’s why traditional bounties depend on the PR being merged.

But if it’s someone you can reasonably trust, then you can offer to pay them by the hour and even if the patch ends up not being accepted, you’re still responsible for paying them for their good-faith effort. You’re taking some risk but it’s a more reasonable level of risk. (And it’s risk that someone has to take, as no one can guarantee in advance what might or might not be merged.)

Fortunately or unfortunately, most of us with the ability to fix Scala 3 compiler bugs or zinc bugs already have full-time salaried positions and more work on our hands already than we can cope with. But @spamul3128’s suggestion of going ahead and putting the jobs/bounties out there is worth a try, IMO. There could be someone out there with the interest and the desire. And if they’re able to fix a thing or two for you, they might be able to parlay that into further work from you or others.

Seth