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

🤑 Run Fund Fest 2023 #108

Closed
58 tasks done
Tracked by #110
chadwhitacre opened this issue Feb 22, 2023 · 124 comments
Closed
58 tasks done
Tracked by #110

🤑 Run Fund Fest 2023 #108

chadwhitacre opened this issue Feb 22, 2023 · 124 comments
Assignees

Comments

@chadwhitacre
Copy link
Member

chadwhitacre commented Feb 22, 2023

← 2022 | Notion🔒 | Sheet🔒Sheet 2🔒 | 2024 →

Greetings!

Welcome to Sentry's annual Open Source Fund Fest for 2023! This program takes a lot of work to run and this issue is the central source of truth for coordinating all of the moving parts. This year our budget is $500,000, which is almost double last year. There are two key components to this year's edition:

  1. GitHub Sponsors—We are continuing our partnership with GitHub, and this year our goal is to become the first company to approach 100% coverage of all of our dependencies on Sponsors, across three orgs (gesentry, codecov, and syntaxfm). We are dedicating 10% of our budget to this, so these will be small amounts but lots of them and will show as coming directly from us. We expect a number of these to be the first sponsorship that people ever receive.

    Screenshot 2023-10-06 at 10 21 50 AMScreenshot 2023-10-06 at 10 21 14 AM

  2. Thanks.dev—We were a launch partner for this new platform last year, and our pilot project went so well that we have contracted with Thanks.dev to manage the bulk of our budget this year. The size and scope of our program is quite significant, and the product Thanks.dev is building and the level of expertise they are developing in this field make them an excellent partner for us. We're inventing the future together!
    ecosystem boost

Thanks.dev offers payouts through Stripe (0% additional fee) and Open Collective (10%) and is adding payouts through GitHub Sponsors for us (targeting the 3% fee tier). You will need to sign up on Thanks.dev if you want to receive more than the small amounts we're sending to everyone directly through GitHub Sponsors.

We're aiming to publish our wrap-up blog post on October 24. In the mean time, feel free to comment on this issue or reach out on 𝕏 with questions. Thank you to all of the maintainers who build the software Sentry depends on. 🙏

FOSS Funders

While it is fun and exciting to run arguably the most comprehensive and robust program in the industry for really truly funding Open Source, the only way we're going to solve Open Source sustainability once and for all is for every company to step up and participate. Sentry is part of the FOSS Funders working group to drive this change. If your company has an Open Source funding story to tell, please join us!

To Do

  • July 15 - Confirm budget
  • July 15 - Update AP calendar🔒, determine invoice due dates for below.
  • August 1 - Kick off internal survey, run through August 18 (close before hackweek)
  • Receive and pay invoices
    • August 11 - zeroth batch due, missed it this year, hit next year?
    • August 25 - first batch due, including first from GitHub
    • September 8 - second batch due, including final from GitHub
    • September 22 - third batch due - aim for all by here - now just one, from Thanks.dev! 😁
    • October 6 - last chance, try hard not to have to use it! - second one from TD, we decided to split into two since they're large, make sure they make it through the banking system okay
  • Local meetups that Sentry employees frequent? - handled in dev survey
  • Review "What's new with GitHub Sponsors"—bulk sponsorships!
  • platforms?
    • GHS
    • OC
    • stackaid
    • thanks.dev!
    • polar.sh—not ready, maybe next year
  • foundations
    • pay
      • Python
      • JavaScript
      • Rust
      • PostgreSQL
      • Apache
      • PHP
      • Ruby
      • OSI
      • Outreachy
    • logo - https://sentry.io/branding/
      • Python
      • JavaScript
      • Rust
      • PostgreSQL
      • Apache
      • PHP
      • Ruby
      • OSI
      • Outreachy
  • GHS
    • sort out sponsor linking (GH Enterprise feature?)
    • create sponsorships for getsentry
    • get balances transferred to codecov and syntaxfm
    • create sponsorships for codecov
    • create sponsorships for syntaxfm
    • double-check final totals
  • TD
  • publish blog post🔒

Press

GitHub Sponsorships

  1. "A'ight, beat that. 😤😁💃" (chadwhitacre_)
  2. "I'm sorry, I don't make the rules. 🐭" (chadwhitacre_)
  3. "Sentry is giving $500k+ to open source it relies on this year" (zeeg)
  4. "it’s insane that people are anything other than thankful" (jarredsumner)
  5. "A company donates $500K/year in direct funding to OSS" (gergelyorosz)
  6. "YOU ARE A PIECE OF SHIT FOR NOT DONATING MORE OF YOUR VC FUNDING" (ThePrimeagen)

Announcement

  1. "We Just Gave $500,000 to Open Source Maintainers"
  2. X
  3. HN - 112 points and 36 comments despite being brutally modded at ~20 points - and then modded a second time! rankings
  4. /r/opensource/
  5. "It's the 2nd year in a row we've hit the front page only to have HN mods remove it." (bentlegen)
  6. "The answer I got last year (and kudos dang for the tone)" (chadwhitacre_)
  7. "Tarsnap has given 2^18 dollars to open source" (cperciva) - HN (not modded! 😁 390 / 180 / rankings) - X
@chadwhitacre chadwhitacre mentioned this issue Feb 22, 2023
18 tasks
@chadwhitacre chadwhitacre changed the title Run Fund Fest 2023 💭 Run Fund Fest 2023 Jul 24, 2023
@chadwhitacre chadwhitacre changed the title 💭 Run Fund Fest 2023 🤑 Run Fund Fest 2023 Jul 24, 2023
@chadwhitacre
Copy link
Member Author

chadwhitacre commented Sep 7, 2023

Alright, slogging through the thick fog of confusion, hopefully emerging?

I've decided not to use StackAid this year, not seeing enough momentum and I need to focus my efforts. 🐭

I really like what I see at Thanks.dev. It's basically a productization of the spreadsheet I've been using and the team has been super-responsive, basically building it to spec for me. ❤️ 🙏

GitHub Sponsors is making gradual progress but is still quite cumbersome for a program at our scale, no-where near as useful as Thanks.dev.

OpenCollective is approximately as useful as GHS and the fees are higher, 10% vs. 3%.

Two years ago I wrote deps and did allocations manually. Last year I reran deps but also put a little through TD and SA as pilots. I didn't try to reconcile recipients and amounts between them, I just let the TD/SA money be free bonus extra cash dollar dough bucks. This year I would like to flip it:

  1. ~12k — Achieve ≥ 99% coverage on GHS for getsentry, codecov, and syntaxfm, but with a limited dollar amount, basically just buying logo placement.
  2. ~120k — Do some direct payments to foundations still, though a couple of these can be run through GHS or OC.
  3. ~368k — Run the rest through Thanks.dev so we get nice weighting.

Needs from TD:

  1. Mix in sources besides package manifests (survey results, platforms, last year's recipients).
  2. Passthrough to OC/GHS where the recipient is not on TD (I guess with extra 3% or 10% haircut).
  3. Weighting by repo topic (tag-production)
  4. Think about slew?
  5. Concierge? 😅

Needs for TD:

  1. Security approval to install Thanks.dev on private repos (nice to have).
  2. Install Thanks.dev on all public repos.

For GitHub:

  1. Write a script to use the GraphQL API to create sponsorships.

@chadwhitacre
Copy link
Member Author

I have $50k locked up in GHS right now, I should be able to use for PSF and DSF, not sure I'll be able to transfer to other orgs though.

@chadwhitacre
Copy link
Member Author

Engaging with Thanks.dev. Sent in email:

  1. Thanks.dev (TD) administers Sentry's Open Source funding program for the year.
  2. $25k fee
  3. $475k to be allocated and disbursed via one-time or monthly recurring payouts
  4. $50k is already located in GitHub Sponsors (GHS), remainder ($425k) will be transferred to TD, OC, GHS, or direct to project as necessary
  5. Recipients determined via automated dependency analysis in three GitHub orgs + additional lists (survey results, SDKs, prior year).
  6. Allocations weighted according to Sentry's priorities (orgs, repos, ecosystems, projects, recipients)
  7. Payout mechanisms include TD (0% additional fee), OC (10%), GitHub Sponsors (3%), and direct payments (0%) to a limited number of projects (~10).
  8. All funds disbursed (for one-time payouts) or configured (for monthly payouts) by Oct 10.

Let me know if we need to align further on details. Do you have an order form that we can start with? If not [we] can provide. I am seeing terms on your site, not sure if we can start there or what, will let [legal] drive from here.

Internal procurement ticket: https://getsentry.atlassian.net/servicedesk/customer/portal/15/PSD-294

@chadwhitacre
Copy link
Member Author

@nehzata Can we use this ticket to coordinate the rest of our work together this year?

I believe the contract is in your hands to docusign. Once that is inked we are ready to run!

The the thanks-dev app is installed on getsentry, codecov, and syntaxfm. However, the @getsentry-funding account is not a member of the latter two orgs. I have a request in to @jeffrey-sentry to help out with that. I also seem to be having some trouble getting the account through our new SCIM workflow on the getsentry org as well, so I think we may be fully blocked on this.

I had a call with GitHub about transfering funds between the three orgs, I added a sheet to the spreadsheet ("GHS") with details, tl;dr targeting $4/maintainer/month across all three orgs. Need to investigate minimums in our set of maintainers and decide on our approach (easiest is to drop any maintainer with a minimum > $4/mo, but we have some flex if needed).

I also added contact emails for the foundations on the "Summary" tab. Feel free to start reaching out to folks and let me know if any of the target amounts do not line up with levels/expectations for this year. For Outreachy they work in 6-month intervals so the 20k will need to be 2 x 10k I think.

@nehzata
Copy link

nehzata commented Sep 15, 2023

Thanks @chadwhitacre! Contract is signed now. Exciting!

On our side we've nearly finished the manual inclusions process to support survey + sdk deps. We'll get the GH sponsors script sorted next and @anehzat will be starting with the foundations.

@chadwhitacre
Copy link
Member Author

Sounds good. I am traveling today and all next week but I have my laptop, we're so async with timezones in the best of times that I doubt you'll notice much anyway, but in particular I will watch for email threads with foundations that @anehzat starts and chime in as needed. Thanks, @nehzata @anehzat! Good luck! 😁 ☘️ 🙏

@chadwhitacre
Copy link
Member Author

lol should've checked my email first ... love you guys! 😁

Screenshot 2023-09-15 at 4 08 35 PM

@nehzata
Copy link

nehzata commented Sep 19, 2023

Hi @jeffrey-sentry! Hope you're well.

Following @chadwhitacre's previous message re the app installation, we can confirm access to syntaxfm on our side but not getsentry & codecov.

Please let me know if there's anything we can do on our side to assist. 🙏

@jeffrey-sentry
Copy link

@nehzata I do not have access to the codecov org, but I just checked the thanks.dev app permission setting for getsentry and it does have Read access to all repos. Is there anything else we need to do on our side beyond that?

Thanks!

@chadwhitacre
Copy link
Member Author

Here are the repos I see when I login to thanks.dev using @getsentry-funding. I guess we need to do the dance to see codecov and getsentry there.

Screenshot 2023-09-19 at 7 19 01 PM

@chadwhitacre
Copy link
Member Author

All three (plus mine and ... Isaac's!?) are associated with my personal GitHub account. 🤔

Screenshot 2023-09-19 at 7 29 32 PM

@chadwhitacre
Copy link
Member Author

Here's what I see when I try to configure the app using @getsentry-funding from the thanks.dev UI:


Screenshot 2023-09-19 at 7 32 02 PM
Screenshot 2023-09-19 at 7 32 08 PM
Screenshot 2023-09-19 at 7 31 07 PM

@chadwhitacre
Copy link
Member Author

When I configure using my account I see that it is installed on all repos (for all three orgs).

Screenshot 2023-09-19 at 7 33 06 PM

@chadwhitacre
Copy link
Member Author

@nehzata Was there a manual step last year on your side to get this wired up? I forget but have a vague recollection. Any thoughts on how to proceed?

@nehzata
Copy link

nehzata commented Sep 19, 2023

@chadwhitacre looks like for the Sentry org it expects us to manually select the repos individually. Last year we had a script running that would populate everything without requiring the app installation. That worked as all the repos we were interested in were public. If I understood correctly, this year there are private repos as well? If not shall we revert to the previous process?

@nehzata
Copy link

nehzata commented Sep 19, 2023

Just to clarify it seems we have the following options atm:

  1. Use last year's process (public repos only)
  2. Switch to gh/chadwhitacre profile
  3. Manually configure the repos for Sentry (by clicking on Sentry > Configure > "Only select repositories" and adding the relevant repos)

@nehzata
Copy link

nehzata commented Sep 19, 2023

@nehzata I do not have access to the codecov org, but I just checked the thanks.dev app permission setting for getsentry and it does have Read access to all repos. Is there anything else we need to do on our side beyond that?

Thanks!

Thanks for checking it out @jeffrey-sentry!

@nehzata
Copy link

nehzata commented Sep 19, 2023

@chadwhitacre We submitted a bug report with GitHub regarding the issacs entry and got the following response.

image

@nehzata
Copy link

nehzata commented Sep 20, 2023

@chadwhitacre First version of GH mass sponsorship app is ready to test here! :)

@chadwhitacre
Copy link
Member Author

We submitted a bug report with GitHub regarding the issacs entry and got the following response.

What org am I a collaborator in that results in isaacs showing up in the list? I don't see isaacs on the list of orgs on https://github.com/apps/thanks-dev/installations/select_target, e.g. Feel free to cc me on the support ticket and I can connect with GH support directly.

First version of GH mass sponsorship app is ready to test here! :)

Dope! Looks like it's designed to run continuously, yes? Can I run it once to set up recurring monthly donations?

for the Sentry org it expects us to manually select the repos individually

Is it some config specific to the getsentry org that requires this? How about codecov? I have the app set to "all repos" in both orgs (as well as syntaxfm) so I am wondering where specifically we are tripped up here.

@nehzata
Copy link

nehzata commented Sep 21, 2023

What org am I a collaborator in that results in isaacs showing up in the list? I don't see isaacs on the list of orgs on https://github.com/apps/thanks-dev/installations/select_target, e.g. Feel free to cc me on the support ticket and I can connect with GH support directly.

The original ticket is closed as it's from Nov last year. I did some further digging into this and looks like the following is happening:

  • You're a collaborator on github.com/isaacs/github;
  • isaacs has previously logged into TD and has therefore installed the app on his account;
  • GH sees your account as a collaborator of isaacs' RepositoryOwner` entity;
  • Therefore your installation token also gets access to all the repos in that entity that you have read access on via the GraphQL API (which are all his public repos);

We've come across many such disconnects between token scopes in the App installation API & GraphQL API unfortunately...

curl -s -H 'authorization: bearer <TOKEN>' https://api.github.com/repos/isaacs/github/collaborators | jq '. | map(.login)'
[
  "schacon",
  "wfarr",
  "clarkbw",
  "holman",
  "isaacs",
  "haacked",
  "aspiers",
  **"chadwhitacre"**,
  "tjfontaine",
  "TPS",
  "dreww",
  "broccolini",
  "joernhees",
  "jlord",
  "cirosantilli",
  "yoannchaudet",
  "michellemerrill"
]

First version of GH mass sponsorship app is ready to test here! :)

Dope! Looks like it's designed to run continuously, yes? Can I run it once to set up recurring monthly donations?

Yes it currently runs continuously to cater for network failures + GH access token rate limiting. Recurring donations may be possible but we don't know if it works yet as the corresponding monthly/yearly setting are not present in the API. We've asked in GH community forums. Should be a one or two line change.

Let's do a quick code review + test to confirm once you're back online please?

for the Sentry org it expects us to manually select the repos individually

Is it some config specific to the getsentry org that requires this? How about codecov? I have the app set to "all repos" in both orgs (as well as syntaxfm) so I am wondering where specifically we are tripped up here.

Not really sure. Let's go over it on a call when you're back to see if anything sticks out please? In the meantime we've started working based on the @chadwhitacre account that has correct access to unblock ourselves for now.

Finally, looks like @anehzat has the foundations mostly covered. We plan to have a first draft of distributions for your review next week.

@chadwhitacre
Copy link
Member Author

You're a collaborator on github.com/isaacs/github

Thanks for digging, I've opened a new support ticket🔒 with GitHub to be removed as a collaborator from that repo. It is now archived, and I can't find in the UI where to remove myself.

We've asked in GH community forums.

Gotcha. I've asked my contact at GitHub Sponsors in email to see if we can get an answer here.

Let's do a quick code review + test to confirm once you're back online please?
Not really sure. Let's go over it on a call

Sounds good, let's aim for the first part of next week, will drop to email to schedule. 👍

@nehzata
Copy link

nehzata commented Sep 22, 2023

Awesome! First invoice has been emailed btw.

Hope you're having a great time!

@nehzata
Copy link

nehzata commented Sep 25, 2023

@chadwhitacre as discussed, these are the only installations currently present for getsentry-funding user.

curl -s -H 'authorization: bearer <TOKEN>' https://api.github.com/user/installations | jq '.installations | map(.account.login)'
[
  "getsentry-funding",
  "syntaxfm"
]

@nehzata
Copy link

nehzata commented Oct 19, 2023

Minimums deployed (currently set to $10/mo) + spreadsheet updated (2023 tab)!

@chadwhitacre
Copy link
Member Author

Awesome! I'll check it out ...

@chadwhitacre
Copy link
Member Author

  1. ali/armin to review 77 not founds and add to inclusions as appropriate
  2. chad to review sheet and set weight/boost as desired - Friday afternoon (SF)
  3. ali/armin to import them in to TD - Saturday (Sydney)
  4. chad to do final review within TD - Sunday evening (Pittsburgh)
  5. rock and roll! 🎸 - Monday (Sydney)

@nehzata
Copy link

nehzata commented Oct 20, 2023

@chadwhitacre Can you please review the "NOT FOUND" list (now reduced to 48)? I've marked the ones that don't need to be imported as they've moved or are detected at org level. The remainder seem to be from last year's survey results?

@chadwhitacre
Copy link
Member Author

Can you please review the "NOT FOUND" list (now reduced to 48)?

Ship it! :shipit:

@chadwhitacre
Copy link
Member Author

Any chance we could make https://thanks.dev/d/gh/getsentry/dependencies not indicative? 🐭

@chadwhitacre
Copy link
Member Author

Okay! @nehzata and I just finalized Step 2 of #108 (comment) ... a little behind schedule but we're hoping to catch up. Ali is importing now, I will check back in a bit to do a final review, and then we will be cleared to run our first payments! 🤞

@chadwhitacre
Copy link
Member Author

I've just done a final review in TD, there are one or two discrepancies that @nehzata has walked me through, I've given him the go ahead to adjust in a way that makes sense and to proceed with making our first payouts! 👍

@chadwhitacre
Copy link
Member Author

Caught a couple issues:

  • Excluded a few more (swatinem is an employee, pre-commit and pycqa are asottile's).
  • We need to includes Fastlane, Moka, and RRWeb (from the ticket description). Might need to use Python bonus for this?

@chadwhitacre
Copy link
Member Author

Worked it through on a call and we've got something we can ship. There's always next month if something is egregiously out of whack.

@nehzata
Copy link

nehzata commented Oct 24, 2023

@chadwhitacre Confirming first round has been distributed. Emails to recipients already logged into TD will start going out later today. Armin & I will reach out and onboard the other recipients as discussed. 🎉

@chadwhitacre
Copy link
Member Author

Woo-hoo! 😍 Thank you guys for everything! Could not have done it without you this year! 🙏

@nehzata
Copy link

nehzata commented Oct 24, 2023

@chadwhitacre
Copy link
Member Author

chadwhitacre commented Oct 24, 2023

Sweet! I'll look at updating the blog post, it's scheduled for 9:30 AM SF time.

@chadwhitacre
Copy link
Member Author

I'm surprised there are only 20 recipients on Codecov, and that some are below the $10 minimum.

@nehzata
Copy link

nehzata commented Oct 25, 2023

Codecov fixed! Sorry about that!

@chadwhitacre
Copy link
Member Author

Okay phew. 😅

@nehzata
Copy link

nehzata commented Oct 25, 2023

Thanks for the shout out in the blog post btw! Has been a blast working with you Chad!

@chadwhitacre
Copy link
Member Author

@anehzat Can you link in a comment where our logo is placed? Understood that for Postgres we don't get placement.

@chadwhitacre
Copy link
Member Author

Some feedback on HN:

I missed the part about this being a recurring monthly payout - $180 does clear the threshold of what I'd consider a significant donation, so I appreciate that.
I don't mind it being spread out monthly. I think it would help if the process made it a bit more clear what to expect (in terms of the total payout and timeline) in the initial message and/or the UI.

@chadwhitacre
Copy link
Member Author

Calling this shipped!

@nehzatarmin
Copy link

@anehzat Can you link in a comment where our logo is placed? Understood that for Postgres we don't get placement.

@chadwhitacre Here's the link for the ones that are currently have the logo
https://opencollective.com/phpfoundation
image

https://apache.org/foundation/sponsors
image

https://foundation.rust-lang.org/members/
image

https://openjsf.org/
image

The ones I'm following up with still are Outreachy, Ruby, Postgres & Python.
Let me know who's your contact at OSI & I can also reach out to them.

@chadwhitacre
Copy link
Member Author

Let me know who's your contact at OSI & I can also reach out to them.

Sent to you in email. Thanks!

@nehzatarmin
Copy link

nice OSI is also marked as done :)
image

@chadwhitacre
Copy link
Member Author

@nehzatarmin Last items I'm seeing on the TODO here are:

  • pay Python - email traffic on this, is payment complete?
  • logo on Python
  • logo on Outreachy

@anehzat
Copy link

anehzat commented Nov 16, 2023

thanks @chadwhitacre

  • We just sent the payment receipt & followup to PFS
  • We sent another followup to Outreachy

I've put a reminder for myself to follow up biweekly with them about it.

@anehzat
Copy link

anehzat commented Nov 17, 2023

@chadwhitacre PSF is also done, only outstanding one is Outreachy now
image

@chadwhitacre chadwhitacre self-assigned this Jan 17, 2024
@chadwhitacre
Copy link
Member Author

Found us on Outreachy! 🙌

Screenshot 2024-03-01 at 1 22 24 PM

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

6 participants