How does package sponsorship through NumFOCUS work?

If I look at this package: GitHub - JuliaInterop/CxxWrap.jl: Package to make C++ libraries available in Julia I see there i a “Sponsor” button on the top. How can I add this kind of button to a package?

1 Like

I think you need to live in specific countries where GitHub has this feature (banking accounts) and you may need to activate it at the organization level instead of in the repo. I am not sure.

Found this link: Displaying a sponsor button in your repository - GitHub Enterprise Cloud Docs

But I still don’t know if that could work for me (The Netherlands)…

Ok, there is just a FUNDING.yml file in the repo: CxxWrap.jl/FUNDING.yml at main · JuliaInterop/CxxWrap.jl · GitHub

But would I be allowed to add such a link?

1 Like

I’m trying to move away from Github myself, but I believe what you need to do first is sign up for Github Sponsors:

Some relevant docs:

1 Like

Why you want to move away from github? Because it is Microsoft owned now?

1 Like

Why should I sign up for Github sponsors if I want to add a link to Donate to Julia to my package? This links allows you to make a donation to NumFocus for Julia, where you can mention which package you want to support.

The question that is open for me is: What is happening with the information which package you want to support?

This is handled by NumFOCUS and the Julia subgroup there. Some information is on the governance page:

What kind of money goes to Julia through NumFOCUS and how is it spent? When you click on the “Donate to Julia button” on the Julia website, your donation goes to NumFOCUS and is earmarked to be used for the Julia project. This money is used to pay for infrastructure and personnel costs, including website hosting, continuous integration services, and anyone who is working on Julia through NumFOCUS. By far the biggest flow of money through NumFOCUS for Julia is for the annual JuliaCon conference. Money from JuliaCon ticket sales and sponsorships go to NumFOCUS which then pays vendors for services required to make JuliaCon happen and reimburse anyone who has reimbursable conference-related expenses. Excess money (if any) from JuliaCon goes into the same pool as donations. JuliaCon finances are managed by the finance chair and approved by the JuliaCon organizing committee as representatives of the project and community. All money that goes in and out of NumFOCUS is a matter of public record since it is a nonprofit.

This does not currently include any details on the package field in a donation — perhaps @avik or @logankilpatrick could chime in on how that’s handled?

You cannot donate to a specific Julia package through NumFOCUS right now, all donations go to the general pot of money for the Julia Ecosystem.

To support CXX.jl directly, they would need to setup a GitHub sponsor account to donate too.

If you are trying to add a “sponsor button” to your own repo, this should be doable (given you’re in an accepted country for the program).

1 Like

But why is then this question on the form:

Is there a particular Julia package you would like your gift to support?

1 Like

It’s a holiday here today, and I just saw this thread. There’s a few different things to unpack here. I’ll do a detailed response in a day or two.


So as promised (though delayed), there are few things to unwrap here.

So the reason that “Sponsor” button shows up for CXXWrap.jl is that there is a FUNDING.yml file in the repo. The content of the repo points to a page on Salsa labs, that asks for a few details, including which project you would like to offer support to. The fact is that we receive very few donations via Salsa Labs – only a handful of transactions in the last year. And the vast majority of those leave that field blank. There is probably only one vague reference to a particular project for a small donation.

These days we much prefer to receive donations via Github directly. You can see the setting here: .github/FUNDING.yml at master · JuliaLang/.github · GitHub. Using that mechanism, we don’t ask for project targets, it is more obvious that the money is going into a single Julia project pot.

This is important because it’s the Julia project that is affiliated with NumFOCUS (as is SciML and Flux, separately). Even if a funding is for a particular project, the money cannot be directly transferred to the project owner – it needs to go through NumFOCUS’s process, which generally requires a statement of work and a contract at least. NumfOCUS needs to conduct some due dilligence to maintain it’s non-profit status. It’s not difficult – Pluto for example received a directed corporate donation, which we used to pay some Pluto developers last year. But I just mean to say that we cannot redirect a stream of cash automatically. So if you want direct payments, you are better off signing up yourself to the github sponsor program yourself.

Having said that, if you, or anyone else needs funding for any of your Julia open source work, reach out to me or Logan. Our resources are limited, but within that, we do try to do grants for impactful work when we can, from Julia project resources. This year, our main contribution has been towards Makie. We also can apply for external grants (eg, the NumFOCUS small dev grants, which has funded some Documenter work among others.). At the very least, we are happy discussing options.

Hope this helps. Thanks for asking the question, I’m happy to provide more clarifications if needed.