Here is the rough concept of LibreSelery:
1. LibreSelery is a AGPL licenced command line tool that takes a git folder as an argument.
2. It collects all email addresses of the main project and all dependencies that can be resolved from
https://libraries.io/ API. In this way, most package systems are supported.
We also provide a custom yaml file to add dependencies like Dockers or Debian to your project, which we can't detect simply by automatic scanning of the dependencies.
3. The email addresses of contributors are collected from the git platform user profiles. If no public email is provided, no transaction for that user will be considered.
4. Based on a contribution metric, funding is distributed among the contributors. The metric can be extended and configured by individual projects. Currently, activity and minimum contribution are considered. In our next version, we will extend the possible metric configuration based on code data and project data. In this way, the number of solved problems, merged pull requests, lines of code or the number of commits can be considered. Based on the weight value different kinds of contribution can be considered more than others. As all transactions are automatically made public, we hope that the Communities will adapt the weights and metrics to their needs.
5. After the split is done, we distribute the money to the email address via the Coinbase API. You can define a custom note that will be attached to the Coinbase email. If the user does not have a Coinbase account to that email address, the amount will be deposited there for 30 days, informed by email about that and can withdraw the amount by opening the account.
LibreSelery can be run manually from the command line, but the main purpose is to integrate it into a CI pipeline. In this way, the funding is distributed with each push to the master or new version that is made.
In this way, the financing of your project becomes completely transparent, as we push the visualization of the project transactions and the donation button into the wiki of the target project. In the CI log file all details of each individual run are visible. Storing the Coinbase tokens and git tokens in your CI secrets is also a good way to protect them from my experiences.
Here the CI template:
We also have a very simple simulation mode to check how a funding distribution would look like in a single run. I hope we can extend the simulation to show what the distribution would have looked like based on the existing git history.