It seems that our two projects have very similar goals. Both projects could really compliment each other and I would like to get in touch with you to share experiences.
LibreSelery is a tool to distribute funding in free and open source projects. With a new funding model, it offers transparent, automated and adaptable compensation of contributors. The aim is to replace the middleman in donation distribution as far as possible with a free and transparent algorithm. Unlike most other donation systems LibreSelery only offers a decentralized tool and not a platform.
We also are developing a weight system to calculate the automated distribution of funding with our project. Last week LibreSelery went public and we have already distributed about 2000€ for the development of our own project.
Welcome @Ly0n! Great to have you here. It does look like LibreSelery has a similar mission to SourceCred! And a similar approach, too. We’ve also been dogfooding our system; at time of writing we’ve distributed about $687k worth of Grain to SC contributors.
Having taken a look at your docs, it looks like we have pretty similar approaches, with two major differences:
We embed all the contributions into a graph and then run modified PageRank to assign scores to the contributions. This creates a really nice / extensible framework for incorporating many different sources of data (e.g. Discourse posts, Discord messages, pull requests, manually curated nodes representing higher level features or events), and winds up being more robust to “activity spam”.
Rather than directly distribute an external cryptocurrency (e.g. BTC), we focus on enabling communities to launch their own digital currency (“Grain”). If the community wants, they can then make their Grain an ERC-20 token exchangeable for ETH, etc. This has a lot of benefits; it means that the community can fundraise by selling some of those tokens to sponsors, or can use them for governance purposes, etc.
Having Grain also makes it easier for us to distribute really meaningful amounts of money–I mentioned that we’ve distributed just under $700k worth of Grain, but only about 10% of that has been “redeemed” for cash. Many contributors are holding onto their Grain balances, which will be usable later for stuff like Boosting or reinvesting in the project. It’s a nice system in that it ensures that we can be really generous with contributors who need more income, while people with external sources of income aren’t draining the coffers.
It would be great to have you at one of our community calls. We have them every Tuesday at 11am PT (see our calendar) on Discord. Discord is also the best place to meet the community, we’re more active there than on Discourse.
Welcome @Ly0n! Very cool project, aligns nicely with SourceCred. Want to dig into it more, but the big question I have so far (which is also an open question for SourceCred) is how to weight the dependencies. I see you use Libraries.io to track dependencies. When I look at SourceCred’s (below), it seems legit. But dependencies are just listed alphabetically…Do you just divide equally? Use some other metric?
It would be great to have you at one of our community calls. We have them every Tuesday at 11am PT (see our calendar) on Discord. Discord is also the best place to meet the community, we’re more active there than on Discourse.
I will join the community call tomorrow.
I see you use Libraries.io to track dependencies. When I look at SourceCred’s (below), it seems legit. But dependencies are just listed alphabetically…Do you just divide equally? Use some other metric?
At the moment we are gathering all contributors in the dependency tree with a public email address and pick a random user-defined amount out of them. This contributor will get so-called “uniform weight” that is given to every person with a minimum amount of contribution. It works and has the benefit that we can use it to advertise the main project and LibreSelery. We also have a user defined list where you can put dependencies that can not be found by the dependency scanning. Here you can put Docker, Linux, Python or other “tooling” that you use to run or develop your project.
Another approach would be to randomly pick one project from you tree and use the same weight configuration as in the main project. In cases like Docker or Linux this would result in cloning very large projects. Also smaller project would much more benefit from that than larger projects.
Exspecilly things like dealing with dependencies is something we want to discuss with the community. How can we create a fair share that is possible with technical limitations like API calls or project size