-
-
Notifications
You must be signed in to change notification settings - Fork 113
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
Read URL from package.json #2
Comments
This is a neat idea. |
Decentralize! ❤️ |
One thing worth noting is that you can already add arbitrary contact info for individual |
Yep something like |
Using the expanded author info is intriguing, particularly when using the https://indieweb.org/payment |
This'd also address the problem of the burden of keeping the donation link data accurate being on you (if this takes off, I can imagine people submitting PRs to associates some popular developer with a patreon they control) |
I'm both for |
The Down the line if we need more information, the {
"donation": {
"type": "patreon",
"url": "..."
}
} |
if we put the donation-data inside of a |
@btkostner To be clear, my suggestion does not change that |
(something explicit in the package file would also be good, but this would be nice to have as another mode of donation discovery) |
I would love to see @qubyte's suggestion implemented, both for ideological reasons and to ease maintenance. This should only work over HTTPS and validate certs, though. Also, explicit info from |
@adrianheine Agreed on all counts. I'm putting a module together now which does this. I may make the suggestion as a separate issue so I don't hijack this comment thread any further. |
I like @btkostner but I think the type shouldn't be used to say "opencollective" or "patreon" because those can be easily figured out from the url. Instead the type could be:
Issue: we cannot really use |
Alternatively, we could use the key as the type:
|
|
That looks much more verbose. An array of just types and values really sounds like an object with attribute and value no? Also, an object makes it much easier to quickly test if a project supports a certain donation method ( The only reason to have an array would be if we want to store more data (e.g. current balance?). But I don't think that this is the place for it. |
There's an argument to be made for allowing both per-author and per-project links. A multi-author project might want to provide separate links or a single one (say, to an open collective), depending on how it's organized. |
@xdamman You can have multiple values for a specific protocol, you can have multi-dimensional values for a protocol, and you emphasize that the protocol is not from a small, fixed set. |
@marijnh I imagine the flow like this:
I think 3 and 7 would be the preferred ways, 1, 5 deprecated and 2, 4, 6 totally acceptable. |
I was experimenting with a similar idea a while ago for ruby gems (bundler thankyou). My goal was to use bitcoin as a system to transfer some tip directly to all dependencies (one payment to all) Having the donation data in the package description (package.json, etc.) allows us to reuse the current trusted infrastructure, it is super easy for the package maintainer and donations can be defined for every version (for example: ruby on rails could donate the "thanks" for v 4.x to railsgirls) I like the simple key/value proposal by @xdamman 👍 |
Thought I'd jump in with what we do with the Bevry ecosystem (around 300 packages). We use boundation to generate and update projects, this injects the following package.json code
Which is rendered in the READMEs using projectz, which forwards that field to badges to get the rendered badges. There was a plan so that Projectz will pull in the sponsors, and render them automatically in the readme. Already it just shows those in the "sponsors" package.json field (similar to authors, contributors, maintainers). However, I never got around to finishing the remote sponsor fetching as fittingly, there were no funds to support development. To some extent, the project sponsored that I setup to fetch, correlate, and expose such data, seemed to have a lot of the goals of thanks. The upcoming goal is for a cloud project to routinely run projectz against the projects, so that READMEs stay up to date with the latest information. As well as a cloud project to routinely run boundation against the projects, so that they always stay up to date with the latest conventions. As an aside, there are more nifty things in our community, such as editions and awesome-travis which allows us to write esnext, yet still support and test on node 0.8 etc. As well as automatic documentation publishing for commits, branches, and tags. However, that isn't related to this issue. |
I had a similar idea, and found this thread as I was halfway through building a similar tool. I built a platform for handling software donations, givethanks.app, and a specification for adding donation metadata to your While developing the spec, I tried to keep everything as generic as possible. As @btkostner said above, I think this has a higher chance of getting adopted into the main package.json spec if we use Feross' |
@pastudan cool one! 💯 But from the spec, i can't get how we can define multiple platforms - for example Bitcoin, Paypal, Thanks and Patreon? Only seeing "multiple recipients" which is.. kinda confusing to me, it means another thing? Note that i didn't read it completely, just glance looked over the spec. |
@tunnckoCore yeah, you can actually support multiple platforms and/or multiple recipients! Check out the 3rd example here: https://github.com/ThanksApp/donate-spec#3-multiple-platforms EDIT: Re-read your comment. You can also add multiple platforms for a single recipient, by just putting the ...
"donate": {
"name": "Dan Pastusek",
"email": "dan@hexial.com",
"platforms": [
{
"platform": "Thanks",
"address": "https://givethanks.app/u/pastudan"
},
{
"platform": "Ethereum",
"address": "0xBdcD67A49d61029e142492F33E42AA8b5Eb627DC"
}
]
} |
Oooh, got it. I'm the recipient, yea 😆 The spec definitely sounds good to me and like it should be included in the package.json spec too. 💯 🥇 edit: Maybe you should add this example there too. Yea, this example is |
I've added support for Buy Me A Coffee, Liberapay, Thanks App, and Boost Lab to badges. So you can generate the donation buttons in your READMEs using projectz. A good next step would be for projectz to read the "badges" config and the "donate" config and do any appropriate merging of the two, so the two properties can generate each other. |
@balupton yeah, merging those two would be awesome! You seem to have started standardized list of funding platforms. That's something that I hinted at toward the bottom of the spec, but it would be nice to have a definitive list somewhere. i.e, should it be always lowercase |
@pastudan perhaps we can do a trimmed down version of my unfinished sponsored project, where people can signup, list all their donation platforms, and it spurts out the It could even be used like so with the "donate": {
"recipients": ["balupton", "pastudan"]
}, Which then calls say Or with weighting it could do: "donate": {
"recipients": [{"id": "balupton", "weight": 50}, {"id": "pastudan", "weight": 50}]
}, Perhaps even the service could import people's github and npm packages, to allow a always up to date way of generating the appropriate spec info, without needing to specify it in the packages themselves. Such as Actually, for that last point, perhaps it could make use of the tech https://github.com/boost-lab/algorithm that https://boost-lab.app developed for figuring out the weighting automatically, rather than having users be required to update it all for their hundreds of packages. That would be even simpler! And eventually, if anyone is interested, then it could even be used to add the dynamic features that sponsored was meant to have |
Adding in @Jing-C from https://boost-lab.app to the discussion. |
Hey, what about civic.json? http://open.dc.gov/civic.json/ |
Feel free to close it if this tool is only made for the maintainers and projects listed in https://github.com/feross/thanks/blob/master/index.js
The feature request is to support
"thanks": "url"
field inpackage.json
so that all packages with this field set can be displayed in the thanks table. 😄The text was updated successfully, but these errors were encountered: