Most active commenters
  • VikingCoder(8)
  • smsm42(3)
  • jpfed(3)

←back to thread

2024 points randlet | 23 comments | | HN request time: 1.254s | source | bottom
1. VikingCoder ◴[] No.17516310[source]
I've begged GitHub to institute forms of government for repos.

For X action to happen, Y percent of the pool of people in the Z list need to approve it.

Membership of the Z list is granted when W percent of the T pool approve it.

Modifying the rules of government of this repo can only happen when L percent of the R pool approve it.

And on and on...

I could imagine a city or state government actually having its laws encoded in Github, and Github itself enforces the governmental system of checks and balances. Congress. Senate. President. Veto. Overriding a Veto. Laws of succession. Elections. On and on.

replies(5): >>17516391 #>>17516404 #>>17516453 #>>17516506 #>>17516988 #
2. _wmd ◴[] No.17516404[source]
Technology cannot solve social problems
replies(3): >>17516645 #>>17516711 #>>17517490 #
3. smsm42 ◴[] No.17516453[source]
Why Github? It's like begging your electrical company to institute rules for how multi-tenant building is governed. Github is just a (admittedly major) infrastructure provider, they are not and should not be in business of enforcing governance in open-source communities, which have very diverse governance models and it's great.
replies(1): >>17517470 #
4. mulmen ◴[] No.17516506[source]
Why is representative democracy the best system for managing a repo? Will there also be an option for pure democracy?

Can I fork your socialist utopia and form an authoritarian dictatorship?

I don’t see why this system would ever be beneficial to a real world government. We already have checks and balances, if GitHub did it all who decides how GitHub works? What’s the benefit?

replies(2): >>17517521 #>>17517556 #
5. zbyte64 ◴[] No.17516645[source]
Try solving social problems without technology.
replies(1): >>17516860 #
6. jpfed ◴[] No.17516711[source]
Wasn't it nice that you could reply to this comment over the web rather than physically going to the commenter and telling them what you thought? Boy, this technology sure gave a helpful assist to the social problem of communication.
replies(2): >>17516890 #>>17517057 #
7. dragontamer ◴[] No.17516860{3}[source]
The fundamentals of Robert's Rules are lost upon many people today. The creation of clubs and secret societies was an art of the late 1800s.

Today, people over-leverage technology and under-leverage the fundamentals of club-building. Roberts Rules are about creating a protocol where people each take turns to talk, under a set of rules that gives everyone a chance to voice their opinions... but still allows progress and ultimately a decision to be made.

That's the important part: how to achieve consensus among a group of people. The ideas of democracy, discussion, minority votes, and rules of how to conduct the discussion are all important.

Some groups still use Robert's rules, but many people don't even understand what a deliberative body is meant to do. (IE: most people don't understand Congress's role in society anymore). Its basically been replaced by meme culture and Reddit moderators creating serfdoms and/or dictatorships.

8. _wmd ◴[] No.17516890{3}[source]
OP wants code to legislate trust problems within a small, closed group, however no amount of code can ever solve trust problems within a small, closed group.

No amount of code thrown at people mismanaging their relationship with other people will ever help people more effectively manage their relationship with those people -- it just creates artificial obstacles that further exacerbate or obscure the problem.

There is simply no combination or refinement of the logic OP proposed that would ever be perfectly sufficient to avert the need for human judgement in their scenario.

What if 51% of the project simultaneously reveal themselves to be alt-right fanatics who want to take the work in a new, fundamentally evil direction, ideologically aberrant to OP? Oh that's easy - OP can just step in with his admin privileges and disable their access. And that just underscores the point -- the original voting logic was a facade, and the original trust problem remained. The presence of that logic failed to solve any problem, the reality was always a true power structure that differed from the imaginary codified structure.

Perhaps one alternative would be for OP to give up admin rights entirely - but only a fool would believe a bunch of codified rules spread across a couple of software functions could ever perfectly mediate the complexities of a community of people in every possible scenario.

replies(2): >>17517228 #>>17517522 #
9. lozenge ◴[] No.17516988[source]
You can implement it already with the GitHub API. If you do, please run it on itself.
10. sincerely ◴[] No.17517057{3}[source]
That's not a social problem being solved, that's a technoogical problem. a social problem of communication would have much more to do with the behaviour of people communicating, and one could argue that the internet has made this worse
replies(1): >>17517336 #
11. jpfed ◴[] No.17517228{4}[source]
I hadn't considered the problem to be solved one of trust (which I agree can't be solved with technology), but rather one of coordination/ social choice. Technology again is a valuable assist in this sphere (e.g. evaluating the results of theoretically-nice-but-computationally-heavy voting methods like Schultz or Kemeny-Young).
12. jpfed ◴[] No.17517336{4}[source]
The underlying point is that technology facilitates changing the state of social problems (whether those changes count as solutions obviously depends on one's subjective viewpoint on what those problems are).

Now, it may be that you mean that the changes induced by technological solutions never actually affect some imperturbable "core problem" that is what people mean when they talk about "social problems". That would be a counterintuitive use of language but there'd be no sense in me attempting to persuade people to use language differently. Instead, what would be productive would be to identify what core, unchanged problem really does remain.

13. VikingCoder ◴[] No.17517470[source]
Because I don't want an individual (or small group of individuals) to have authoritarian power (BDFL) over a repo.

It's the governance of the repo that I want encoded. I make a pull request, and it's decided upon by the government system.

That needs to be encoded into Github.

And yes, "the very diverse governance models" is a challenge. One I think needs to be taken up, eventually.

I don't want one jerk to have the ability to ruin a repo. I don't want to have to fork a repo when the one owner dies. When I disagree with the owner of a repo, I'd like a process to resolve it.

replies(1): >>17518180 #
14. VikingCoder ◴[] No.17517490[source]
The decisions that are made by the social group can be recorded with technology. The actions the group is capable of taking can be handed over to the technology. Thus, the ability to take those actions can be mechanically resolved.

Have your debate in email, but then VOTE in a way that can be automated.

15. JohnBooty ◴[] No.17517521[source]

    > Why is representative democracy the best system for managing a repo?
The most obvious reason (to me) is that it's sort of preposterous to think that all votes are equal. I've never even used Python. Should my vote be worth the same as Guido's when it comes to some technical decision? This is a problem in representative democracies as well, of course, but you've a little more protection.

There's also the issue of practicality. Voting on issues is a time and resource intensive process. It's just impractical to have everybody vote directly on every single decision.

    > Can I fork your socialist utopia and form an authoritarian dictatorship?
Well, of course!

    > I don’t see why this system would ever be beneficial to a real world government.
I can't think of a less viable equivalency than attempting to equate a system government to an open source project's management model.

- Nations have many orders of magnitude more resources than... Python

- Practically speaking the vast majority of people can belong to only a single nation, whereas most developers probably used a handful of languages in the last 24h

- Nobody asked to be born into a country, and most people on Earth can't simply choose a new one

- The decisions made by nations are literally life and death for millions of people

The relevant factors for determining the course of Python's governance model bear far more resemblance to your neighborhood restaurant's menu decisions than the ways in which governments are elected.

replies(1): >>17517743 #
16. VikingCoder ◴[] No.17517522{4}[source]
Slow down, I don't think I've done a single thing about "trust."

That's still a social problem.

What I want is that the mechanical process of doing code reviews, accepting pull requests, and orchestrating the Access Control Lists, and the membership of them, can be implemented by the code repo.

Rather than giving unfettered power to a small list of owners, who could literally do anything to the repo. And if they all get hit by the same bus, then we're SOL.

Heck, I want a Deadman Switch, too. If Github doesn't hear from me in 90 days, even after emailing me to get my attention, then ownership of this repo should be assigned to this other person. If that fails, on to this other person, etc.

"only a fool would believe a bunch of codified rules spread across a couple of software functions could ever perfectly mediate the complexities of a community of people in every possible scenario."

Or someone who has experienced such a system at a company, and wishes the rest of the world had similar functions.

Note that I'm happy to allow for escape hatches... Such as we could always Fork the repo.

"What if 51%"

Then I fork the repo.

What do you do if the 1 single owner of a repo turns out to be a fanatic?

You and twenty other people all fork the repo, and then debate ensues about who is the One True Repo.

I'm suggesting that there's a smarter way to handle the problem of a small number of people having absolute power over our repos.

And if you're smart, you leave in a provision for completely changing the governance, in case you screw it up. Or you just fork. Like we do today.

17. VikingCoder ◴[] No.17517556[source]
It's one popular way, that's all. There are plenty of others that could make sense.

A game could grant you the ability to edit its source code, after you complete the game. That's just a for-instance.

> Will there also be an option for pure democracy?

Sure, why not?

> Can I fork your socialist utopia and form an authoritarian dictatorship?

Mechanically, sure. There may be licensing problems, but that's true today.

> I don’t see why this system would ever be beneficial to a real world government.

If the real world government stores its web pages in GitHub, then the real world government can use this governance to handle changes to that web page.

Rather than letting a lone IT admin have root.

> What’s the benefit?

If you're comfortable with needing to fork a repo when the BDFL goes rogue and starts making changes you hate, then there's no benefit at all.

18. VikingCoder ◴[] No.17517743{3}[source]
> it's sort of preposterous to think that all votes are equal.

Sorry if this wasn't clear, but I think there should be different classes of users, with different powers.

No, your vote should not have the same power as someone who has carefully maintained Python for years.

But if there are nine peers, maybe they would like a bit of automation to help them

1) triage bugs

2) vote on actions

3) take those actions automatically based on the result of voting

> It's just impractical to have everybody vote directly on every single decision.

Different parts of code could have different protections.

Want to update the docs? Go for it! If we hate your changes, we'll just revert them.

Want to change the implementation of memcpy? Uh, you're going to get lots of reviews.

> government

How should a city government keep track of its artifacts? The documents it produces that have the authority of their office? Revisions to those documents? Approval over those revisions?

I'm saying technology might make their jobs simpler.

replies(1): >>17545023 #
19. smsm42 ◴[] No.17518180{3}[source]
> Because I don't want an individual (or small group of individuals) to have authoritarian power (BDFL) over a repo.

And the solution is to trust Github (proudly owned by Microsoft) to be the rule enforcer? Hmm...

BTW, there's nothing wrong with small groups of individuals having power over repos - millions of small software projects are governed that way, with exclusive control of one person or small team of people over them. For the project of Python size and influence, it's not a good idea, but for many others it's fine.

> And yes, "the very diverse governance models" is a challenge. One I think needs to be taken up, eventually.

No, it's not a challenge, that is a natural diversity of life. Which should not be approached with one-size-fits-all attitude.

> I don't want one jerk to have the ability to ruin a repo.

With open source and proper distributed version control, it is not possible anyway.

replies(1): >>17518367 #
20. VikingCoder ◴[] No.17518367{4}[source]
If you trust Github to hold your repo, and to implement the mechanics of modifying your repo, but you don't trust them to implement a system of governance over that, then I think you're odd.

If Github screws up any of this, you fork to a different location.

> BTW, there's nothing wrong with small groups of individuals having power over repos

I'm not saying that shouldn't exist.

I'm saying that's inappropriate for some use cases. I'm asking for an optional feature that I would want to use, sometimes.

> Which should not be approached with one-size-fits-all attitude.

Which is why I said that it's a challenge to handle the different use cases appropriately.

> With open source and proper distributed version control, it is not possible anyway.

I'm asking for a feature which makes it less likely that I'll have to abandon a repo for a fork, in some circumstances.

If you don't want the feature, or if you don't trust people who use that feature, you're free to fork.

Why are you going out of your way to shit on my feature request, considering it does you absolutely zero harm?

replies(1): >>17527493 #
21. smsm42 ◴[] No.17527493{5}[source]
> If you trust Github to hold your repo, and to implement the mechanics of modifying your repo, but you don't trust them to implement a system of governance over that, then I think you're odd.

It's a complete non-sequitur. It's like saying "if you trust water company with delivering your drinking water, you should allow them to raise your children". Keeping bits in place (protected by crypto hashes so any shenanigans would be noticed by people holding copies of the repo very quickly) is not the same as letting them govern the projects. Technical and social functions are completely different. Moreover, the issue of trust and control are completely different - there are a number of people who I trust, but I don't let them run my life for me.

replies(1): >>17532108 #
22. VikingCoder ◴[] No.17532108{6}[source]
...sigh...

I don't want the ability to accept a Pull request.

I want three of the five owners of this repo to have to accept it.

I propose that Github automate taking the votes, and taking the action if the vote passes. And preventing the action unless the vote happens.

That way I can trust that nothing happens without the proper procedures.

Your comparison is absurd.

23. JohnBooty ◴[] No.17545023{4}[source]

    Sorry if this wasn't clear, but I think there should be different classes of users, with different powers.
If we're going to choose a class of privileged users to enact policies on our behalf, sounds like we'd wind up with something like a representative democracy anyway.