Closed chadwhitacre closed 6 years ago
Actually, scratch that, here a CSV of GitHub follower counts for Gratipay team owners.
[gratipay] $ GH_USER=whit537 GH_PASS=deadbeef ./owners-by-github-followers.py > owners.csv
#!/usr/bin/env python
from __future__ import absolute_import, division, print_function, unicode_literals
import csv
import os
import requests
import sys
teams = open('teams.txt').read().split()
gratipay = 'https://gratipay.com/'
gratipay_public = gratipay + '{}/public.json'
github_user = 'https://api.github.com/users/{}'
out = csv.writer(sys.stdout)
USER = os.environ['GH_USER']
PASS = os.environ['GH_PASS']
for team in teams:
owner = requests.get(gratipay_public.format(team)).json()['owner']
elsewheres = requests.get(gratipay_public.format(owner)).json()['elsewhere']
github_username = elsewheres.get('github', {}).get('user_name', '')
github_url = ''
nfollowers = -1
if github_username:
github_url = 'https://github.com/' + github_username
nfollowers = requests.get( github_user.format(github_username)
, auth=(USER, PASS)
).json()['followers']
out.writerow((gratipay+team+'/', gratipay+owner+'/', github_url, nfollowers))
Here's the same thing in a Google Sheet for easy sorting.
Looks like we have nine Team ~owners who have more than 1,000 followers on GitHub:
n | nfollowers | ~owner | notes |
---|---|---|---|
1 | 13,539 | https://gratipay.com/~Sindre%20Sorhus/ | |
2 | 4,750 | https://gratipay.com/~feross/ | |
3 | 1,955 | https://gratipay.com/~bbatsov/ | has three teams |
4 | 1,898 | https://gratipay.com/~kangax/ | |
5 | 1,761 | https://gratipay.com/~kytrinyx/ | digest this history before contacting |
6 | 1,417 | https://gratipay.com/~technomancy/ | |
7 | 1,304 | https://gratipay.com/~sokra/ | |
8 | 1,196 | https://gratipay.com/~IonicaBizau/ | |
9 | 1,175 | https://gratipay.com/~dougwilson/ |
We should also look through the folks affected by #432, if that's the work we're going to pitch. The folks who already have a Team may have less incentive to endorse us.
We also don't want to discount cases where the project is higher-profile than the person, e.g.:
https://gratipay.com/Font-Awesome/ https://gratipay.com/Moment.js/ https://gratipay.com/karma/
A manual sweep through the list may be in order as well, since the short-list should certainly also include:
I mixed star and follower counts into the spreadsheet for any repo linked in the homepage, onboarding or todo fields, using the script below and some sheet manipulation.
#!/usr/bin/env python -u
from __future__ import absolute_import, division, print_function, unicode_literals
import csv
import os
import re
import requests
import sys
teams = open('teams.txt').read().split()
gratipay = 'https://gratipay.com/'
gratipay_public = gratipay + '{}/public.json'
github_user = 'https://api.github.com/users/{}'
github_repo = 'https://api.github.com/repos/{}'
out = csv.writer(sys.stdout)
USER = os.environ['GH_USER']
PASS = os.environ['GH_PASS']
for team in teams:
json = requests.get(gratipay_public.format(team)).json()
homepage = json['homepage']
onboarding = json['onboarding_url']
todo = json['todo_url']
repo = ''
for link in (homepage, onboarding, todo):
m = re.match(r'https://github.com/([^/]*/[^/#]*).*', link)
if not m:
continue
repo = m.groups()[0]
nstars = nfollowers = -1
if repo:
nstars = requests.get( github_repo.format(repo)
, auth=(USER, PASS)
).json().get('stargazers_count', -2)
nfollowers = requests.get( github_user.format(repo.split('/')[0])
, auth=(USER, PASS)
).json().get('followers', -2)
out.writerow(( gratipay+team+'/'
, 'https://github.com/'+repo if repo else ''
, nstars
, nfollowers
))
We have 59 Teams with repos with 1,000+ stars, including eight Teams with repos with 10,000+ stars!
Stars | Team | ~owner | Notes |
---|---|---|---|
44,604 | https://gratipay.com/font-awesome/ | ~davegandy | |
27,775 | https://gratipay.com/moment.js/ | ~momentjs | |
18,446 | https://gratipay.com/webpack/ | ~sokra | |
16,465 | https://gratipay.com/md-for-bootstrap/ | ~FezVrasta | |
12,226 | https://gratipay.com/dokku/ | ~josegonzalez | ~progrium (2,745 followers) is also involved |
11,348 | https://gratipay.com/webtorrent/ | ~feross | |
11,087 | https://gratipay.com/opencv/ | ~OpenCV | |
10,104 | https://gratipay.com/devdocs/ | ~Thibaut |
Hrm ... some data corruption in the spreadsheet due to dash being sorted differently. One sec ...
Okay, s/opencover/opencv/ ...
Why isn't https://gratipay.com/karma/ showing up? The Todo link is to the GitHub repo ...
Their Todo URL is http instead of https, updating ...
I also fixed https://gratipay.com/deadbeef/. That's the only other one I found amongst the -1s on the sheet.
I manually updated their numbers on the spreadsheet.
Okay! The -2s are fine. I think we have our shortlist:
Per GitHub followers:
Per stars:
https://gratipay.com/~progrium ← for dokku https://gratipay.com/~rem ← for jsbin
That's 19. Two more things to look at:
Twitter followers count suggests we add:
I added a "Score" column, which sums the Twitter followers and Stars with the greater of the Gratipay ~owner and repo owner GitHub followers. It suggests https://gratipay.com/~mxstbr/ (13,511) and perhaps https://gratipay.com/~thomaspark/ (8,541).
This listing based primarily on score (Twitter followers + GitHub followers and stars) seems as good a one as any. The next step is to draft an email and send it out!
n | Score | ~user |
---|---|---|
1 | 71,540 | https://gratipay.com/~davegandy/ |
2 | 46,458 | https://gratipay.com/~Sindre%20Sorhus/ |
3 | 28,852 | https://gratipay.com/~momentjs/ |
4 | 27,213 | https://gratipay.com/~feross/ |
5 | 25,312 | https://gratipay.com/~kangax/ |
6 | 19,749 | https://gratipay.com/~sokra/ |
7 | 18,400 | https://gratipay.com/~OpenCV/ |
8 | 17,376 | https://gratipay.com/~FezVrasta/ |
9 | 17,253 | https://gratipay.com/~josegonzalez/ |
10 | 14,258 | https://gratipay.com/~jamescampbell/ |
11 | 13,511 | https://gratipay.com/~mxstbr/ |
12 | 13,311 | https://gratipay.com/~kytrinyx/ |
13 | 13,272 | https://gratipay.com/~bbatsov/ |
14 | 11,207 | https://gratipay.com/~Thibaut/ |
15 | 10,199 | https://gratipay.com/~zefhemel/ |
16 | 8,541 | https://gratipay.com/~thomaspark/ |
17 | 7,887 | https://gratipay.com/~Dignifiedquire/ |
18 | https://gratipay.com/~rem/ (jsbin) | |
19 | https://gratipay.com/~progrium/ (dokku) |
I guess let's use this pad for the email draft:
https://public.etherpad-mozilla.org/p/gratipay-moss-track-2-2016-endorser
We've decided to implement a more batched process for considering MOSS applications, so we'll be having an application deadline every 3 months for that round of consideration.
The first of these deadlines is 11:59pm UTC on August 31st, 2016 - basically, the end of August. They will then occur every three months thereafter.
So if you or someone you know is pondering a MOSS application, now is the time to send it in. The deadline is a little over a week away.
https://groups.google.com/forum/#!topic/mozilla.moss/E5d4Owvb7lk 😞
That's a curveball. We want to be done with #432 by the time the next deadline will roll around (Dec 31). :-/
Also:
We expect the vast majority of MOSS awards to be singular rather than regular - that is, support for doing a particular defined thing, rather than ongoing support for a project in general.
Okay, I posted the following on the mailing list. Let's circle back in November.
Gerv, et al.,
I rewrote Gratipay's MOSS Mission Partners application yesterday ... and then learned about the new quarterly deadline ... which we just missed. D'oh! :-)
In case you're interested to see how our application has progressed, here it is: http://bit.ly/2cWuX7b.
If you're willing to consider our application out of band, we'd be happy to submit it. Otherwise we'll check back in late November to see about the next quarter.
Either way, thanks again for running this program! All the best! :-)
https://groups.google.com/forum/#!topic/mozilla.moss/CZY1TiyZOyY
Applications for Foundational Technology and Mission Partners remain open, with the next batch deadline being the end of November 2016.
https://blog.mozilla.org/blog/2016/10/03/moss-supports-four-more-open-source-projects-with-300k/
Would you like to be added to https://wiki.mozilla.org/MOSS/Friends? If so, email me. And feel free to tell your members about MOSS.
https://twitter.com/gerv/status/801013422724939776
💃
To: Gerv at Mozilla Subject: Gratipay → MOSS/Friends
Thank you for the invitation to add Gratipay to MOSS/Friends! :-)
How about the following?
Gratipay
Gratipay helps companies sustain the open-source ecosystem they depend on, through weekly recurring funding. As of late 2016 there are over 200 projects on Gratipay, which have collectively received more than $1M over the past four years. Gratipay itself is an open organization, and is funded on Gratipay. Apply here.
Done.
Maybe we should just go for it?
We're going up against Open Collective, which has raised $805,000 in venture capital. We think open source deserves an open platform, non-profit and funded on itself. That's why we're asking for the full amount of $250,000.
I've reached out to someone privately about endorsing us.
👋
@andrew has agreed to endorse us! 💃
Any particular points you'd like me to highlight?
@andrew Since you've successfully gotten grant funding recently, perhaps you could advise on how to approach this. Do we go for https://github.com/gratipay/inside.gratipay.com/issues/637#issuecomment-262227328, or should we try for something more modest? What do you see as Gratipay's distinctives and needs?
Ask your endorser to write a paragraph or two on why supporting your work via this grant is a great idea.
What future for Gratipay could you get excited about? Are there particular features or improvements you'd like to see? We've got our own ideas, of course. Let's find something we can converge on. :)
cc'ing @benjam in as he's the grant specialist (although snowed under for the next week so might be slow to respond)
As you mentioned in https://www.youtube.com/watch?v=Rj88uGUB7tw and https://github.com/gratipay/inside.gratipay.com/issues/852#issuecomment-255098337, making it easy for businesses to easily see and fund all the open source software the depend upon across their whole business has a lot of potential to help business realize the risk factor of not funding all to of these projects that their business depends upon, something which until now has been a very hard thing to do.
With respect to how to plan the grant, I'd focus on specific outcomes and how they will have an ongoing positive impact as well as what other good initiatives those outcomes will support.
I seem to remember that MOSS prefers to fund specific goals/projects rather than ongoing maintenance although I don't believe that they have rejected any application yet.
I do think we need to focus on companies more than projects. There's an obvious felt need among projects to receive funding, signing them up is not the hard part. The hard part is finding the hook to convince companies to sign up and pay up. Making it as easy as possible to get money to the right place in terms of dependencies is one aspect, but that really is just removing barriers, which is not enough in itself to motivate companies to action. To be honest I think diversity is probably the strongest related pain point for companies (our experience under Gittipay 1.0 bears this out). Not sure how that plays into a grant application here ...
What do you mean when you say "diversity"?
I mean demographic diversity, primarily gender, race, and class.
The demographics in tech are out of whack. Here's the chart I find myself returning to:
Alright, I've started dusting off the application draft. I'm going to spend some time with the roadmap and probably factor out a strategy document. It's encouraging that Gerv invited us to join MOSS/Friends. That means we're on their radar and pretty clearly mission-aligned. 👍
Okay, I've reworked our application.
Any particular points you'd like me to highlight?
@andrew Do you buy the idea that Gratipay matters because it's more truly open than Open Collective?
@whit537 I don't think I have enough information from both parties to make that distinction and that, even if that distinction did exist then it might be damaging to wider open source sustainability efforts to be divisive about it rather than supportive of all efforts to create a more sustainable community.
Fair enough. From my perspective, what I am seeing is that Open Collective has $805,000 in VC funding, and Gratipay has $0 in funding. Gratipay may already be irrecoverably irrelevant. Without funding, we're definitely done, because we won't be able to put in the same level of effort as Open Collective.
I actually talked with Pia the other day, and asked her what it could look like for those of us working on Gratipay to give up and start helping with Open Collective instead. She basically said, "Sorry, we can't accommodate that right now. Hopefully we can figure out open collaboration before our investors want to cash out in 10 years." 😞 That feels gross. Gratipay is losing, and the winner won't let us collaborate with them instead. That does not feel like open source to me. I think the world and open source should have a crowdfunding and payments platform that is competitive and relevant ... and open. Gratipay is open, but we're not competitive right now, and we won't be without funding.
Ask your endorser to write a paragraph or two on why supporting your work via this grant is a great idea.
Can we find a non-divisive way to say that it's "a great idea" for Mozilla to give Gratipay a chance to compete? For better or for worse, it's competition (from Open Collective in particular right now, but there are others) that is driving our need for funding.
If Gratipay disappeared, why would it matter? Would you care?
With respect to how to plan the grant, I'd focus on specific outcomes and how they will have an ongoing positive impact as well as what other good initiatives those outcomes will support.
Probably the thing to do is to ignore the intense burning sensation that I feel, and pitch them on $100k or whatever to add the "give to a bundle of dependencies" feature that we've been talking about:
As you mentioned in https://www.youtube.com/watch?v=Rj88uGUB7tw and https://github.com/gratipay/inside.gratipay.com/issues/852#issuecomment-255098337, making it easy for businesses to easily see and fund all the open source software the depend upon across their whole business has a lot of potential to help business realize the risk factor of not funding all to of these projects that their business depends upon, something which until now has been a very hard thing to do.
@whit537 I'm trying to see the distance between Open Collective and Gratipay here. From their number here, seems the total annual budget of all the projects is 100k. Not sure what the 277k budget on their homepage is about. Our weekly donation is around 1k, so annually 50k. It doesn't seem a big distance, considering they have VC to boost their marketing.
If Gratipay disappeared, why would it matter? Would you care?
@whit537 you can change "Gratipay" to the name of any endangered species :) Maybe you are instead asking "if it hangs in there, would it worth all the work and pain?"
@nobodxbodon, weekly money moved is $1K, but Gratipay receives far less.
ETA: https://gratipay.com/Gratipay/ (was on my phone earlier).
@mattbk yes I'm aware of that. I was comparing the platform capability of moving money. IIUC Open Collective doesn't get a cut from donation, and income only comes from VC funds?
@nobodxbodon :bowing_man:
Can we find a non-divisive way to say that it's "a great idea" for Mozilla to give Gratipay a chance to compete?
The non-divisive way of saying this is to say that we don't see the need to compete--because there's room enough for everyone in the marketplace at the moment. See also our previous discussions about the long tail and growth mindset.
In conversation at #314, Louis-David Benyayer suggested that we seek funding from Mozilla and other large open-source foundations.
https://twitter.com/LDBenyayer/status/735556364269916162
We're writing our proposal at https://public.etherpad-mozilla.org/p/gratipay-moss-track-2-2016.
The application form is at https://docs.google.com/forms/d/1rwYQTT-9-eldS-kElY646bMwMzJpxfL8lDskX86xgCQ/viewform.