I'm really happy that there's increasing efforts to help fund the people who write the OSS we depend on. I was really happy looking at Evan You (the creator of VueJS) being able to reach his patreon goal, but I really wish some of the massive companies making use of Hapi would help with Eran Hammer's patreon goal: https://www.patreon.com/eranhammer
It bewilders me how companies make so much money and depend on something like Hapi for its "enterprise" quality but won't give a little bit back to the person who developed their open source software for free. I hope github considers adding some kind of integration with patreon and other platforms to help bring more attention to maintainer's funding drives.
Did you consider the approach of scanning through the readme and looking for urls to known donation sites? Maybe this could be done separately to add to the list?
Yes, but fetching full npm package metadata (which includes the readme) for 100s of packages was really slow. I'll see if there's some other approach (perhaps getting the readmes from GitHub, or perhaps pre-processing all package readmes) that might work.
Sure, that would work. Then we'd be getting the readme version for the latest version, ignoring updates to the readme that have been made since the last publish. Will consider that approach.
I like the idea of this project! I know macOS terminal displays emoji well, but it will make look bad in the rest of the systems. You probably want to use ASCII art fallbacks for them.
I did not know other terminals struggled to display emoji. I'll test out a default Windows Bash and Ubuntu terminal to get some concrete data points and use a fallback if necessary.
Interesting idea. What do you envision such a partnership would look like?
Here's how I think about this. OpenCollective solves the problem of accepting payments and allocating those payments to maintainers in a transparent way (Patreon does this too, to some extent).
`thanks`, on the other hand, just lets you know that a maintainer is asking for donations and directs you to their donation page which may be on OpenCollective. For example, these ones are: https://github.com/feross/thanks/blob/c203cc0248fe339e9ea4b8...
I suppose `thanks` could do more, e.g. accept payments directly from the command line, or ask how much you're willing to donate and then suggest an allocation to each maintainer/team. But I wanted the v1 of this product to be super simple. It merely raises awareness that you may have dependencies looking for donations, but doesn't prescribe how much to donate, which platform to donate on, or whether to donate at all.
Seeing `puppeteer` in the example makes me feel odd about this.
Isn't it an official Google project by paid Google employees? Eg I thought Paul Irish was a paid Goole employeee, so it seems odd to suggest donating money to him in the context?
(I might be wrong; and am also very thankful for what he does and don't begrudge anyone donating him money nor him asking for it. Just... Odd...)
To get things started, I added a bunch of authors who had accounts on Patreon and Librepay so `thanks` wouldn't start out completely empty. Specifically, I used the "Find My Friends" feature and just used the list that came up. (Paul had a LibrePay account receiving $0/month.)
So, in the specific case of Paul it might not make sense to suggest donating to him for a Google project. Though, to be fair, he has a lot of packages on npm, some of which appear to be his own work (https://www.npmjs.com/~paulirish), so suggesting that you donate to him for time he's put into his own packages outside of work is fine in my book.
The broader question is: how should we determine who to donate to?
We could have packages declare explicitly if they're seeking donations and, if so, who to donate to. There's a proposal to do this here: https://github.com/feross/thanks/issues/2. For simplicity in this V1 product, I just used the list of maintainers who had npm publish permission at the time of the last release. As a concrete example, take a look at this JSON response from the registry: http://registry.npmjs.com/standard/latest We're just using the list of users in the "maintainers" key. If any of those users is in this list (https://github.com/feross/thanks/blob/master/index.js) then we suggest donating to them.
Use the couchdb instance at https://skimdb.npmjs.com/registry to scrape all readmes, parse them for URLs to known donation services, and seed the db using that.
For projects on Github, you could use OAuth to verify that a user owns a repo, and let them manually submit a donation URL. Not sure if npm provides OAuth, but if it does, use that instead.
https://twitter.com/feross/status/961745970080792576