Connect your GitHub and Steem accounts and claim your rewards by simply clicking a button.
You don't need to write a post about the work that you already did and you don't need to wait for a review process.
The website lists your pull requests, calculates a score and generates STEEM for you as soon as you click the "claim" button. Simple!
The algorithm to calculate that score is of course the most essential and crucial part. For now it's really simple and abusable but over time a variety of improvements will be implemented.
Currently the code you contribute isn't of any relevance. One reason is that it's not an easy task to automatically evaluate code quality properly. The other reason is that the project's popularity is at least as important and the quality of the code itself (or whatever the pull request contains) will be ensured implicitly by project owners who decide what to merge and what not.
Merge Rewards uses only meta data to calculate scores and the scores are not based on the amount of work but on how many people benefit from it.
A small bug fix in the Linux kernel affects much more people than the next big and bloated feature set in a project that is used by only a few people.
I understand that sometimes the small projects of today are the big ones of tomorrow and sometimes the value of a project can not be measured by it's popularity. But Merge Rewards is not supposed to be perfect from the start. It's supposed to evolve.
So, this is the first simple version of the score calculation:
if (userAge > 365) points += 1;
if (userAge > 365 * 5) points += 2;
if (mergedPRsLastMonth > 2) points += 1;
if (mergedPRsLastMonth > 10) points += 2;
if (repoAge > 90) points += 1;
if (repoAge > 365) points += 2;
if (repoStars > 50) points += 1;
if (repoStars > 250) points += 2;
if (repoForks > 10) points += 1;
if (repoForks > 50) points += 2;
return Math.round((points / 15) * 100);
Really stupidly simple but as you can see, there are also factors like your GitHub account age or the age of the repository. I have a lot more metrics in mind to make the algorithm more fair and flexible. I also plan to give project owners a chance to affect the score.
Here's a list of possible improvements:
Etc... The GitHub API offers a lot of data that wants to be used.
Once you've claimed rewards for one of your pull requests, a comment is posted to the blockchain and a bot votes on them. This bot is mostly based on something that I wrote almost a year ago for Utopian. Unfortunately they never used it so I'm glad to have some purpose for it now. On the other hand it needs some adjustments. I already removed all the Utopian specific code but I also need to change all the voting power related stuff to adjust it to the "new" resource credit system. I haven't been active for a year so for me that's new. The bot kind of works for now so I'll postpone this a little bit.
Basically it behaves like this:
Read more in the Readme.
Well, there are not many hard requirement for PRs except they need to be merged in the past 14 days (For the start I set it to 90 days!) and for a repository other than your own ("own" means administrator rights). And there is no human factor at all so abuse might become a problem. This is why the scoring algorithm needs to be smart. I think with the factors I use currently it is already too much effort to abuse the system compared to the rewards which are currently none because there is no Steem Power in the account.
But I want to invite everybody to try and to help to make it more immune to abuse.
Currently you can "easily" fake a 60 % score by:
If your GitHub account is a bit older and you have some old repositories there, you could even reach a 100% score.
The current website is just a quick "make it work" thing. I will put all my design and marketing skills (no matter what that means :D) into giving it a professional look and feel and the best possible user experience.
Currently the website shows only the score of a PR. The estimated vote value could be next to it. As there is a waiting list and the possibility that the bot "overheats", it's status can be shown on the website as well.
Since Keychain seems to be sorft of a "first class citizen" in the Steem ecosystem, I will integrate it as soon as possible. But this also means I cannot rely on Steemconnect's comment function. So the changes affect more than just the login mechanic.
Although this whole project is about automating some parts of Utopian, it doesn't mean that you can't have both.
When claiming your rewards you will be able to author a post which will be automatically tagged for Utopian and prefilled with their post template.
On the other hand I could also integrate Utopian posts by looking for URLs to merged PRs somewhere in the post content.
The website will show projects that invested in Steem. This investment will be Steem Power of a separate account to increase the rewards for contributions to this project.
If you grant offline access to your account, rewards can be automatically generated once your pull requests get merged.
Currently the PRs are represented by comments of a specific post from the @merge-rewards account. This post could automatically change by posting a new "root" post every X rewarded PRs or in a fixed interval to show some statistics. The first root post is this one by the way.
A browser plugin could render a claim button directly on github.com on your pull requests page.
Some sort of bot that automates communication with project owners.
If somebody can explain to me what the exact benefits of an own token really are, maybe that's an option. But to my understanding it's only... let's call it prestige and more difficult to cash out.
Ok, this might sound a little bit far fetched but actually all it needs is training data and a lot of metrics. The metrics should not be the problem. The training data maybe is, because it needs humans to review the results of the scoring algorithm. But think of it as a "shifted" moderation process.
Does that make sense? I don't know. Bitbucket maybe? Is there any other platform than GitHub with a considerable amount of open collaboration?
I think there's a lot of potential and room for improvement in this, especially regarding the scoring algorithm. And I'm sure I had some ideas that I didn't write down anywhere and now I forgot. The best thing is, this project has a built-in incentive mechanism to improve it. Maybe I'll even give some extra points for PRs for this project. :D
Obviously this whole thing can only work with a considerable amount of STEEM POWER. I am not rich so I can't power up this account to that level. I just delegated 100 SP to make sure there's enough RC for the start.
Until now there's no mechanism to reward delegators and maybe there won't be one. I will set all posts from this account to 100 % SP payout. So you can also support the project with big upvotes on posts from @merge-rewards. A direct delegation is of course the most needed way of support for the time being. I will also try to find investors but actually I don't like that kind of work so much so maybe that's not going to happen.
Currently 50.000 SP would result in up to 1$ in rewards for a pull request. That is the goal for now!
Currently this project is in PROTOTYPE stage! I called in BETA in the title because it sounds better and actually it can be used already. BUT... please see this as a project that we can develop together. If there is some bug preventing you from getting your rewards, fix it and get rewarded for that! If you think the scoring algorithm is stupid just submit a PR and let's discuss it there as well.