Adopting BitHub

Maybe some of you came across the project by Open Whisper Systems – BitHub. In short this is a system that pays out bitcoins to a creator of every merged pull request. Money is taken from the project’s donation pool. Every reward is calculated as 2% of the current donation pool size. This software is being used at OWS.

We discussed in a few topics that we may want to attract some new contributors for the project. Having a little reward for the merged pull request might be motivating for newcomers. Also AFAIK we already have a donation pool at Bountysource, the money that was given to the project at whole and not for the specific issues. And we’re unsure of what to do with this money actually. So I was wondering what do other people at diaspora community think - whether it could be profitable for us as a project and community to set up this software and introduce rewards for merged pull requests?

I don’t like the idea of fixed percentage, since there are more and less trivial pull requests. Instead I would propose to have a gradation of complexity of the pull request, having trivial, simple, medium and complex with 0.5%, 1%, 1.5% and 2% respectively. Complexity is defined by a maintainer who merges the pull request. This is nothing that is implemented in BitHub, but this is how I see it could work better.

I honestly am not opposed to the idea of looking for a “replacement” for Bountysource given the amount of issues and the state of maintenance it’s in. The thing is… the bitcoin exchange rate somewhat instable, so I am not sure if it is a good thing to put much money into it.

Also, I really really dislike the idea of rewarding every PR with the same amount of money. That just does not feel right to me. There are a lot of PRs which are done in 30mins from start to finish and on some PRs, multiple contributors had to work for months. I really want to have a variable reward, either based on some kind of factor we set per PR (to account for the amount of work put into the PR) or by some kind of importance (to reward “important” PRs higher).

That is very true. It’s actually very horrible - we have USD 1,437 laying around on BountySource and we could spend them on issues. Maybe, the actual solution to this topic is to have a “committee” or something to decide what issues are important to us and how much money we would like to spend on each…

1 Like

Actually, let me repeat this. USD 1,437. We only ever paid out USD 145 in total. That’s a total shame and we should do something with that money.

Actually, let me repeat this. USD 1,437. We only ever paid out USD 145 in total. That’s a total shame and we should do something with that money.

I agree.

A thought came to me earlier, but I decided to keep it back then, but maybe it makes sense now as we turn to this question. If we want to attract newcomers to the project, how about assigning some little sum to every issue marked as “newcomer”? Maybe 1-2$ each?

1 Like

Yes! I’d even go up to $5, since 1 or 2 dollars are a bit too “small” to be worth the billing work. :slight_smile:

We should probably leave some dollars to allocate to other non-newcomers issues. Also, if the amount is too big there is a risk that some expert programmer comes and solves all the newcomer issues just to get the money. So it should not be bigger that symbolic. Perhaps it is better to allocate 5-10-15$ sums to a more complicated issues which the newcomers can take as a second or a third. So it feels like a game :smiley:

So I mean more complicated issues can motivate people to start, but if can’t start right away with level 1, they can start with level 0 which is newcomer labeled and has a symbolic payout of 1-2$. In order to do so, we have to assess the complexity of issue we want to promote.

Sounds like a cool idea, but I think we can’t/shouldn’t use bountysource for that. Because I would add more restrictions/rules to this. Something like:

  • Only once or twice per person
  • Not for active developers
  • Maybe reward PRs and not newcomer issues, because if a newcomer opens a useful PR (not only a typo in the readme), but it wasn’t marked as newcomer or we didn’t even had a issue for it, then I think we should still reward the person.

And then I’m with @denschub:

But there were some small 5$ bounties for the last 0.6 issues before the release, and I somehow felt a little bad about fixing them, but I also wanted to finish the release. And I want that everybody (also active developers) to be “allowed” to fix newcomer issues, if they want to (without conflicting with the bounty). So I’d restrict this $5 rewards explicitly for new developers (or maybe also people who contributed once years ago, and now start again).

And about the topic:

I’m open for alternatives for bountysource, but 2% per PR is not an option for me, because as you already mentioned, there are different sized PRs.

This should not stop you, you can always request the money and then give it back to the diaspora* team if you don’t want it. There are fees only when you ask for a cashout.

About Bithub, I agree with @denschub: bitcoin is really volatile, moreover, it’s an ecology disaster. I’m not a fan at all of this technology. If we want to drop bountysource (and it could be a good idea, seeing how it is actually maintained), we could have a look at https://freedomsponsors.org/ I didn’t try it at the moment but it looks like it works the same way. I also agree every PR shouldn’t have the same money on it, for two reasons: some means more work, and some are more important to solve from a user point of view (so we want to put the focus on those with more money on it).

About the newcomer issues and the possible restrictions for the $5 bounty, well, it depends what we want to achieve. Mainly, do we first want to see issues resolved, or new comers joining?

Some thoughts, reading your messages:

  • An expert is also a new comer if he never contributed. It could also encourage him to join, not only beginners.
  • If someone comes and closes every newcomer issues to get the money, well, we will have the issue solved. That should probably be the main goal IMO. And I’m sure we will find some other issues to put the newcomer label on it :wink:
  • Newcomer means easy to solve, but that’s not always what’s important for the diaspora* users. I personally use the “help wanted” label to differentiate the issues we would like to see solved first (and nobody is going to work on it from our side). Some issues have the two labels, but some don’t.
  • IMO, money only attracts if there is enough on it. Maybe at least $50.

So to sum up, the way we were going until now, to put money (at least $50) on issues which want to see solved is the way to go. It’s important to focus on what we deliver and what the users expect. The problem here is, we stopped the IRC meeting, so we don’t put money any more :stuck_out_tongue: Let’s open a thread here to discuss about the issues and the amount, and I will gladly do it :slight_smile:

I had a quick look at it and it looks interesting and similar to bountysource.

That’s true, I don’t want only beginners. But “newcomer”-issues are also good for experts, when they are new to the project, so they install a development environment on their computer and get used to the code. And after the first PR, it’s probably easier to do a second one.

So we can’t but 50$ on every “newcomer”-issue, so that’s more something for the “help wanted”-issues. So maybe we should have another IRC meeting to decide on which issues we want to put money to attract more new developers? :slight_smile:

So, can we choose so issues and an amount to put on?

Here is some issues I find important:

  • Refuse to start when no Redis is running and Sidekiq is turned on 5267
  • Conversation form on contacts page prefilled with only sharing contacts 7377
  • Post links in notifications can contain empty contents 7266
  • It is possible to mention someone not being on the aspects you’re posting to 6379
  • Users are able to select services in the publisher that are no longer supported 6184
  • User with too many hidden shareables is unable to hide new posts 3817
  • Facebook access_token is never refreshed 4188

There also are new features:

  • Aggregate reshares in stream 4219
  • Resize images on client-side before uploading 5621 (which would allow to post HD pictures, that is definitely needed)
  • Put the chat out of the alpha stage 5398

Any other things in your mind?

That is my personal favorite. There was a little discussion about it last week. An option to unfold and fold a complex/long post would be nice too, I am not sure if this feature request already exist.

Here is another idea about using the donation money. What if we post 1$ bounty on each open issue labeled as bug each month? We currently have 58 open issues labeled as bugs, so we’ll need 58$ per month for that at this point.

Bug fixing is the most important part of the development, because maintaining stability is vital to a software project. Community members may have different opinions on particular feature requests importance, but I think that no one will doubt the necessity and priority of fixing bugs.

Also this way the bugs which are not getting care for years will rise in their bounty value so increasing chances they are finally get fixed.

3 Likes

I like the idea, because we should work on fixing bugs (and you already fixed some, thanks for that <3), but I’m not sure if we should just add bounties to all of them. Maybe some bugs are blocked by something else, that should be fixed first, or some bugs maybe are obsolete once another issue is done, so it doesn’t make sense to fix them anymore (but just closing them would be wrong, when they aren’t fixed yet).