LibreSelery is a command line 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.
This project is funded by LibreSelery itself. If you actively contribute to this repository, you will receive a small amount of cryptocurrency from the donation pool to your public email address on GitHub.
LibreSelery is a simple command line tool that runs upon any GitHub hosted project manually or automated by continuous integration. It works with a donation pool containing cryptocurrency in a wallet. With each run a small amount is taken from the donation pool and is distributed to the project's contributors and dependencies. The project owner has the freedom to customize the distribution but it is done openly in-front of the community.
It is designed to run in a continuous integration pipeline like GitHub Actions. Donation transactions are automatically handled and transaction details are published for transparency into the wiki of your repository. Even the donation website is automatically created in your Wiki.
Donations are divided between contributors based on public and transparent metrics. The metrics can be configured per repository and are based on the following weights:
The amount distributed to each contributor is calculated from an accumulation of these weights. It is sent via the cryptocurrency market API to the public email address of the git platform user profile. You can even configure the compensation of contributors from your own dependencies, therefore donating money back to open source platforms which play an integral role in your project.
The weights calculations are under active development and will be extended in the future in cooperation with the community. We always listen to concerns and actively seek options for fair and appropriate measures of payout weights. The goal is a system that is fair and recognizes the contributions made without being susceptible to abuse. Furthermore the issue of 'morality' is still open and any issues, concerns or ideas, regarding the following questions, are always welcome:
tooling_repos.ymllike Docker or Linux that LibreSelery is not able to find out based on your repository information.
Since the project is in its early stages the amount of funding on your wallet should therefore be limited.
Use the template seleryaction to integrate LibreSelery into any GitHub project. Starting with GitHub Actions integration is the easiest way for newcomers and people without Linux knowledge.
cd ~ git clone https://github.com/protontypes/libreselery.git cd libreselery docker build -t libreselery .
cd ~ git clone <target_repository>
mkdir -p ~/.libreselery/secrets ~/.libreselery/results/public touch ~/.libreselery/secrets/tokens.env
Copy a selery.yml into your <target_repository>.
Libreselery currently supports Coinbase. To enable valid payouts using Coinbase:
~/.libreselery/tokens.env). Never store these tokens in a public repository. Replace XXXXX with the Coinbase and Libraries.io tokens to get started without creating an actual accounts for these APIs.
COINBASE_TOKEN=<your_coinbase_token> COINBASE_SECRET=<your_coinbase_secret> GITHUB_TOKEN=<your_github_tokens> LIBRARIES_API_KEY=<your_libaries_io_tokens>
include_dependencies: Falsein your
selery.ymlin your <target_repository>.
selery.ymlaccording to your requirements.
COINBASE_TOKEN=XXXXX COINBASE_SECRET=XXXXX GITHUB_TOKEN=<your_github_tokens> LIBRARIES_API_KEY=XXXXX
chmod 400 ~/.libreselery/secrets/tokens.env
env $(cat ~/.libreselery/secrets/tokens.env) ./run.sh <target_repository>
sudo apt update && sudo apt install git ruby ruby-dev curl python3-pip
cd ~ git clone https://github.com/protontypes/libreselery.git cd libreselery pip3 install .
$PATH. Check the output of
echo $PATH. If it does not contain
.local/binadd the following line to your dotfile for example
Follow Step 3 to 9 of the Running with Docker instructions. They should not differ at this steps.
Run LibreSelery on your target project and enjoy fresh Selery.
env $(cat ~/.libreselery/secrets/tokens.env) selery run -d ~/<target_repository> -r ~/.libreselery/results/
LibreSelery is going to support multiple APIs and assets in the near future like:
Solving this problem that is one of the core challenges of LibreSelery. We combine multiple weights calculated based on different project data. Via the GitHub API we can even create weights based on projects activity like merging, code review, issue creation, etc... By the accumulation of all weights, we try to avoid rewarding just one behavior. One of the most important metrics will be how much pull requests X have been solved based on the Y issues. We also have a minimum contribution limit that you can adjust for your project. By making all payments transparent, everyone involved can see what the distribution looked like in the past. In principle, every company has metrics for the distribution of funds. Unfortunately, these are often very non-transparent. In contrast, we try to solve the whole thing with the community. That is why our architecture allows you to add more and more weights. These weights can be balanced between each other depending on your project and community. There will never be one ideal metric that can determine the performance of totally different people. We even have a simulator on our roadmap to fine tune the weights.
Since LibreSelery is only a tool and not a platform, we do not and cannot charge any fees. Only buying and selling cryptocurrency on Coinbase has fees. Transactions between Coinbase wallets have no fees.
Yes, you can do that. But please try to avoid spamming people with emails. Every payout results in an email. To disable notification emails, set
send_email_notification: False. Users without a Coinbase account on their github profile email address will still receive emails. Sending cryptocurrency between Coinbase wallets is for free. The Coinbase API allows you to send a minimum of 0.000001 BTC.
We do not charge for transferring cryptocurrency from one Coinbase wallet to another
Let's assume you have a small donation that you want to distribute within a larger project.
full_split could cause your transaction to fall below the allowed limit of 0.000001 BTC. Not many people in your project may have a Coinbase account. Only few people would open an account for 10 cents. With the random distribution, individual donors are randomly selected based on their weight and receive a larger donation. Over a longer period of time, the same distribution should emerge as it would with the
After 30 days, any cryptocurrency sent via email that has not been claimed by the recipient will be returned to the sender.
You can always use Paypal as a transaction bridge. Find more information on the the Paypal integration into Coinbase here
The Coinbase referral program lets you earn a bonus for each successful referral registered to your account! If your friend visits coinbase.com/trade and initiates a buy or sell of $100 USD or more (or 100 USD equivalent of your domestic currency) within 180 days of opening his or her account, you both will receive a 10 USD (or 10 USD equivalent of your domestic currency) referral bonus when the order completes. Orders can take up to 4 business days to complete. [...] You can also send funds to an email address. This will register as a referral as well.
LibreSelery is working on a way to make even this referral income transparent for the sending account.
LibreSelery will send the donation to the public email address of your GitHub account. In case the email address is a business or academics address you need to talk to your organization about what to do with the donation. If you have entered a private e-mail address here, you can accept donations at your own discretion. We consider your project contribution as privately done that has not already been rewarded.
Certainly we are funded by LibreSelery with our
donation website. The usage and development of LibreSelery will always be free and without any charges. If you want to support us by using LibreSelery on a regular base you just need to add us to the
tooling_repos.yml of your project. The donations are distributed among the developers of LibreSelery, how else?
Those who have contributed to the master branch receive emails with cryptocurrency from Coinbase. Only git profiles with emails on the GitHub profile page will be considered. Find out more in the contribution guide or look into the good first issue labels to get into the project with some first simple tasks.
For further information please contact us at
team_at_protontypes.eu, join our Gitter chat or check out our wiki. The organisation behind LibreSelery is
protontypes. We are building an "Open Accelerator for Free and Sustainable Innovation" based on LibreSelery. Find out more on https://protontypes.eu/.
Artwork by Miriam Winter and undraw