4 ms·
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. Membe
by VikingCoder 8y ago
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.
- kdkeodoid 8y agoAll hail our new Microsoft overlords!
- _wmd 8y agoTechnology cannot solve social problems
- zbyte64 8y agoTry solving social problems without technology.
- dragontamer 8y agoThe 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.
- jpfed 8y agoWasn'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.
- _wmd 8y agoOP 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.
- jpfed 8y agoI 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).
- VikingCoder 8y agoSlow 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.
- VikingCoder 8y agoThe 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.
- smsm42 8y agoWhy 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.
- VikingCoder 8y agoBecause 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.
- smsm42 8y ago> 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.
- VikingCoder 8y agoIf 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?
- mulmen 8y agoWhy 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?
- JohnBooty 8y ago> 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.
- VikingCoder 8y ago> 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.
- lozenge 8y agoYou can implement it already with the GitHub API. If you do, please run it on itself.