Mbin: A kbin fork that promises to never review PRs before merging them

density@kbin.social to Fediverse@kbin.social – 4 points –

Somebody who was previously active on the kbin codeberg repo has left that to make a fork of kbin called mbin.

repo: https://github.com/MbinOrg/mbin

In the readme it says:

Important: Mbin is focused on what the community wants, pull requests can be merged by any repo member. Discussions take place on Matrix then consensus has to be reached by the community. If approved by the community, no additional reviews are required on the PR. It's built entirely on trust.

As a person who hangs around in repos but isn't a developer that sounds totally insane. Couldn't someone easily slip malicious, or just bad, code in? Like you could just describe one cool feature but make a PR of something totally different. Obviously that could happen to any project at any time but my understanding of "code review" is to at least have some due diligence.

I don't think I would want to use any kind of software with a dev structure like this. Is it a normal way of doing stuff?

Is there something I'm missing that explains how this is not wildly irresponsible?

As for "consensus" every generation must read the classic The Tyranny of Stuctureless. Written about the feminist movement but its wisdom applies to all movements with libertarian (in the positive sense) tendencies. Those who do not are condemned to a life of drama, not liberation.

49

It looks like they're still working out what they want their process to be:

https://github.com/MbinOrg/mbin/pull/34

Seems like your concern is addressed there:

Pull Requests require at least one (1) other maintainer approval before the PR gets merged (built-in peer review process).

The mbin fork happened when kbin development was looking a lot less active. In any case, it's not necessarily bad to have a diversity of approaches. Due to their differing organizational structures, mbin will likely tend to have more features and more rapid development, but also potentially more bugs, while kbin remains more stable.

I cant follow the convo to tell if this is the actual state of things or just something thst was being discussed but:

16 Maintainers MAY merge incorrect patches from other Contributors with the goals of (a) ending fruitless discussions, (b) capturing toxic patches in the historical record, (c) engaging with the Contributor on improving their patch quality.

What an idea.

From the PR comments:

Maintainers MAY merge incorrect patches from other Contributors with the goals of (a) ending fruitless discussions, (b) capturing toxic patches in the historical record, (c) engaging with the Contributor on improving their patch quality.

I asked around and asked in the C4 specification matrix room.
And the reason is actually simple. If you merge bad code, have a record of proof in git (pull requests aren't forever it's only a github/gitlab thing).

So the idea is if you merge bad code you have proof in the git record that there is a bad actor. You can always revert the commit again or fix it. And the record can act as a proof in case the community want to get rid of bad actors.

I do love Mbin, I just wish we had an area instead of Matrix to talk about things that we want and stuff.

I'm still not getting the point of mbin. I mean, options are nice, but what's the value it brings over kbin?

they don't use github issues?

They do but it would be nice to have a place to talk about it in a Magazine instead of having to go to external sites

Can't make a magazine? https://kbin.run/newMagazine

It's not that I can't make a magazine, it's just it won't be looked at or be used as an official one. So it would be worthless creating one

That is correct, we do not have an "official" instance or an "official" magazine. What follows now is MY OWN opinion, other community members might think differently.

Mbin is aiming for a federated and decentralized social network, I think the whole point of the fediverse is that there shouldn't be one main instance, right? Feel free to create a magazine where ever you want! Isn't that the beauty of activitypub? Maybe the idea takes some getting used to.

here we all are talking about it on fediverse@kbin.social which certainly isn't Official Fediverse comm.

kbin.social is the official instance of kbin ;)

Your community members ("I do love Mbin") are expressing that they are unhappy with the mediums available for discussion and feel excluded. What is done about it?

I agree, this is a wild reactionary shift to the issues they've seen with kbin. Unless the community "consensus" includes people actually reviewing and testing this is just going to put the repo admins in a tough situation when they have to merge in some broken commit the community voted on.

If it's any consolation, you likely won't have to worry about using it, as its liable to be unusable.

As a person who hangs around in repos but isn't a developer that sounds totally insane.

Why do you hang around there then? So you can write articles like this in an attempt to stir the shit? What is there to gain from that, for the fediverse?

I'd also like to know how you hang out there then, as I can't seem to find a person called Density hanging around? I might not be looking in the right place, of course

It seems to automatically pull all changes from kbin anyway so I don't know about this consensus approach.

https://karab.in/m/karabin/p/340377/Usterka-z-crosspostami-nie-zawsze-sa-przyporzadkowane-odpowiedniemu-watkowi-matce-at-ernest

Hmm, that seems like not such a good look from Ernest. According to google translate:

I know, honestly it was on purpose. I noticed that forks sync changes immediately with /kbin. I wanted to check how they deal with this much-announced community-based qualitative code review. Answer: they can't cope. Quite an obvious bug was accepted in PR and domerged into the main branch :P It now works properly on the rifle ;)

Hopefully everyone can play nice and work together productively.

seems like you are saying ernest put thru an intentionally malicious PR to see what would happen? And what happened was exactly what is described? I mean, ya, thats what people will do.

It wasn't entirely intentional, it was actually my mistake. But I held off on pushing the hotfix for a while. It was a development branch, so these kinds of bugs were permissible - in this case, it just changed the order of related posts, nothing serious. It was quite easy to spot and fix. Slow and cautious acceptance of pull requests, something I spent a lot of time on, was the main accusation from the creators of forks. Hastily accepting them was a problem for me. I personally considered a consensus similar to that, but now I see it doesn't make sense. Someone needs to take responsibility. Personally, I believe that forks are the best thing that could have happened to the project.

It is good to really see your true nature now. I'm also think the fork is the best thing that could have happened for the community. It's a pity that you never started a conversation, but instead you still try to do mean things like this.

Oh c'mon, don't be mad. It's just a wrong sorting of posts, it's in an edge case, and seriously it wasn't intentional. I just wanted to check how such management looks in practice, how many merge accepts are needed, etc. I didn't mean to do anything wrong that could cause harm. I even push the same code to my instance to facilitate your tests ;)

But you're right - that's just my nature. I approach PR with very limited trust, whether they're mine or from others.

I know your approach on PRs. Hence the main reason of the fork. The community does believe in their people and the good in mankind. Only 1 approval is required from another maintainer for now. We are using C4 way of working.

I assure you that I didn't intentionally push incorrect code into the repository. These were my first lines of code in a really long time. I simply got involved in other things that I wanted to finish first, and I noticed the edge case in the meantime, but it wasn't a priority. I saw that you were syncing and I was hoping to benefit a bit from it once you fixed it. I didn't expect the review to happen so quickly. By the way, I was genuinely curious about how this project management method works because, you know, I've always avoided such an approach. Merloy, you know how much I owe you, and I appreciate what you've done for the project, as well as the other Mbin contributors. Our overall visions haven't always been the same, and I think it's great that kbin has been forked. You see for yourself how my work looks until the release - there are many things I'll be refining over time. That's why I've put a hold on all other PRs, and now I want to focus on this.

@ernest @melroy
lol this whole conversation is a microcosm of the open source community. I agree with ernest that forks are great and would add that they show that the open source system is working as intended.

You are right. But was the whole debacle that lead to this fork being made worth it? Wouldn't it have been much better if Ernest had just sorted out all himself and we'd all be working on the same project together now instead of introducing mistakes into forks too see what happens? What a complete waste of time, especially under the current circumstances.

“True nature” in this case appears to be slow and cautious. Shocking stuff!

Ow.. it was 100% intentional. You said it yourself: "Wiem, szczerze mówiąc było to celowe. Zauważyłem, że forki synchronizują od razu zmiany z /kbin.". https://karab.in/m/karabin/p/340377/Usterka-z-crosspostami-nie-zawsze-sa-przyporzadkowane-odpowiedniemu-watkowi-matce-at-ernest#post-comment-510980

@melroy I don't think you can really be upset about anyone putting through bad code. According to the philosophy as I understand it, bad code (intentionally so or otherwise) is a useful contribution and you are basically soliciting it. You supposedly have some way other than code review to ensure nothing harmful gets through and it has to do with the reputation of the contributor. Since you already knew @ernest and clearly have a bad opinion of him, how did it happen?

I did not and could not review the PRs themselves. So I am just going on the information as presented here. Sounds like @ernest put through some code (either into kbin or mbin not clear on that) which he knew was not 100% highest quality but which error was not critical or devastating. And that it could easily be found and fixed. Partially he did this to learn more about this governance model. A model which has apparently been developed in direct opposition to his own. Is it approximately accurate?

If so, sounds a bit mischievous at the worst.

I really can't recommend Tyranny of Structurelessness highly enough.

Yep, in Polish we call it skrót myślowy.

In hindsight maybe we should have responded by saying we merged your mistake intentionally to see how you'd respond.

i am not being serious of course, as that's not our community's nature. Even though it's allowed to gather proof, we (I am quite sure I can speak on behalf of the community here) would never intentionally introduce bad code into software which is being actively used.

Ernest, you have seen me before, pleading for you to change your ways, on all fronts. This, sadly, degrades the faith I have in your project being suitable for being used in production, from a pragmatic point of view. Kbin may be reliable, but you are not.

Ernest said he didn't introduce bad code on purpose:

I assure you that I didn't intentionally push incorrect code into the repository. These were my first lines of code in a really long time. I simply got involved in other things that I wanted to finish first, and I noticed the edge case in the meantime, but it wasn't a priority.

Ernest has said many things in the past and many times has not lived up to his promises. So I doubt this words now. Also he's already contradicted himself on this matter.

Yeah, that's true. Real-life stuff was kinda more important for me at the moment than managing the project.

For me, it's straightforward: I pushed some dev code that wasn't even a complete feature, and it got approved in your pull request. That's why I was advocating for everyone to only merged their own PRs in the /kbin repository – so that each person could take responsibility for their own work. I won't go on about this any further.

Real-life stuff was kinda more important for me at the moment than managing the project.

As it should be, always, for everybody, you won't ever hear me judge you on that, so please don't try to make me look bad by implicitly suggesting I am.

What you failed to do however is delegate, even temporarily, your responsibilities to people you trust. Instead you left people who trusted you dangling, only sporadically feeding them promises you would never fulfill. It seems keeping them on a leash was kinda more important to you than securing the future of kbin.

I won't go on about this any further.

I hope I'll never have to mention this again, so you'll never have to. Which would imply that you'll have come to terms and lived up to your promises, both recent ones and from the past.

Yes, I say this fully aware - there are many things that I have failed at. Much of what I said, I failed to achieve. However, I never wanted to keep people on a leash; I am more of a person who prefers to stay on the sidelines and engage in what brings me the greatest pleasure - coding, just like any other contributor.

Believe me, I tried to delegate tasks, had many private conversations and discussions. Perhaps it wasn't visible from the outside. However, in that mental state, the last thing I wanted to do was resolve conflicts among adults, and it all started to boil down to that. As @BaldProphet mentioned - "microcosm of the open-source community."

Moreover, there were too many different visions of the project, ignoring requests, etc. That's precisely why I decided to temporarily halt development, to secure the future of kbin. It was my decision, and as I mentioned, forking turned out to be the best thing that could happen. As you can see, the differences are not that significant, but it will be easier for all of us - especially since we can always draw inspiration from each other, and I don't think anyone has a problem with that.

However, I still maintain contact with many people, and sometimes they mention to me the attitude of certain individuals on mbin's Matrix - it is at least puzzling. In any case, I want to stay away from that and focus on my work with contributors who understand and prefer my approach.

Thank you for your in depth, genuine, reply

Believe me, I tried to delegate tasks, had many private conversations and discussions. Perhaps it wasn't visible from the outside

I am sorry but I'm having a hard time believing you when you say that you were seriously trying to delegate, as not a single soul ever said anything which would remotely confirm this. I believe you had conversations, but they ultimately didn't result in anything in this context.

However, in that mental state, the last thing I wanted to do was resolve conflicts among adults

I am not sure how to interpret this as there were no conflicts that I'm aware of that needed resolving during your absence, everybody was just waiting

I am more of a person who prefers to stay on the sidelines and engage in what brings me the greatest pleasure - coding, just like any other contributor.

There's nothing wrong with being like that, there are other people willing to do things like resolving issues. Like me. I realize I appeared out of nowhere. As a new instance owner it took a while for me to notice, but when the situation became clear to me I was ready to jump in and help, just like all the other people who had offered their help (before me).

You've basically just admitted that you were either incapable of or unwilling to engage in structural problem solving and management of the kbin project. That's fine, but you should have reached out and informed the community as soon as you became aware of this.

forking turned out to be the best thing that could happen

Yes, forking can have positive side effects and perhaps having two versions in development synchronously can merit more than one. This however was not the proper way to achieve this and using it as an excuse to justify your behavior and inaction is unjust.

However, it is not too late. You can still do the right thing by starting delegation now, by clearly assigning multiple people to all essential tasks, and giving multiple people complete control of kbin.social, so that, should a similar situation occur in the future, you and the community will confidently know that the project will not grind to a halt again.

Then seek a constructive dialog with the mbin community and we can make the project, in it's current for, work. Together.

If you feel uncomfortable with or are have trouble doing any of this, as you've clearly indicated you'd rather spend your time on coding, you are always welcome to ask me for advice.

Never hesitate to ask for help.

You see, I don't know how I would act now in hindsight. You have to take into consideration that, at the peak, hundreds of people willing to help appeared out of nowhere, people I didn't know at all. By nature, I am rather distrustful and approach new relationships cautiously - I really need a lot of time to get to know another person well. It's true that after some time, a certain structure began to take shape, but not everything is always as it seems at first glance - especially when so many strong personalities converge in one place. Perhaps it was a mistake that instead of addressing many things publicly, I tried to solve them in private conversations.

And you're right, anyone who knows me a bit knows that I have trouble asking for help. Sometimes, I take too much on myself, which is not good in the long run. I'm working on it. But this time was something more. I promised to take care of things, and under normal circumstances, it would probably be easy for me because I have some experience in resolving such situations. But these were not normal circumstances. I realized this too late. I was just overwhelmed by real life. So many problems collapsed on me that I could never have anticipated. These were the worst months of my entire life. I don't want to write too much about it or make excuses, but at some point, even getting out of bed or eating something became difficult. When I tried to get back to the project, the thought of the backlog and how many people I let down made me feel sick. That's why I'm really glad to be where I am now. I can only apologize to you and try to fix some mistakes. I need to do it at my own pace. I want to clean up the mess, find my rhythm, and then engage in broader communication with people. I'm still recovering on my own.

What I did was indeed a bit malicious, but I believe it was the only way to achieve the intended effect. The fact that I really like you all should not mean that I will be uncritical of your work. I don't want you to fully trust everything that comes from me - only in this way can we fully utilize the potential we have in developing the fediverse. Frontend errors are just a trivial matter; they can be quickly found and fixed. However, the situation is completely different when it comes to backend mechanics. Seemingly minor errors when I was developing karab.in made me undo them for weeks. With larger instances, there may not be a second chance. This is not a centralized system, you have to consider others above all. That's why I am so sensitive to it and have so many doubts about making changes.

It's not that I want to make things difficult for you. I really care about mbin developing in the right direction. I am curious about what the future will bring. I would like kbin to remain rather ascetic, subtle, and something that you need to learn and understand a bit, rather than having everything handed to you on a platter. Mbin can be a different face, with more features, bolder, and I know that you have many great ideas for it. A simple example is the labels for marking mods/admins/ops that you are currently working on - kbin has it marked in a subtle way with a faint left border outline - you can do it differently, and that's great. As someone very wise once said, "If it's not diverse, it's not the fediverse."

@melroy I am sure that this is just the beginning of our shared adventure. I hope you won't hold a grudge against me for long ;) Guys, I deeply regret that we met at this stage of my life, but as I say, all I can do is try to fix my mistakes. Thanks for everything!

3 more...

At this point you are just evidencing that Ernest's judgement was spot on.

3 more...

Despite the fork. I hope we can learn from each other indeed. That will only benefit both of us.

Although we merge into main it's not a release, we use GitHub/Docker tags to mark releases. And use semantic versioning if needed for minor and patch releases.

3 more...

Instead you left people who trusted you dangling, only sporadically feeding them promises you would never fulfill.

Now, you see, this is the part that I as an uninvolved observer who's just now catching up on the happenings do not get. Promises that were never fullfilled?
How long has or hasn't this actually been an issue? Because from what I can see looking at the codeberg commits, it seems like development stalled for how long, like a month or so?

I totally get not wanting to be left hanging and having some answers and pathway for how contributions can happen. But as you also agree on, I also get real life being more important and getting in the way sometimes. And in that sense, being out of it for a month or so does not exactly seem like an earth-shattering amount, even if it's annoying when it happens to be the project lead and not much can happen.

I just can't help but feel like all of this has been pretty impatient and premature, which also makes it hard for me to really understand the point of the fork, even if I can relate to the basic rationale behind it. But then again, I have no knowledge of the direct going ons and communications between the contributors and the events that led to this. So there might be a lot I'm just not getting.

@fr0g I am in substantial agreement with you after reading all this back n forth.

What you failed to do however is delegate, even temporarily, your responsibilities to people you trust.

Possibly becausE - you kkkw, urgent real-life stuff got in the way

3 more...
3 more...
3 more...
3 more...
3 more...
3 more...
3 more...
3 more...
3 more...