Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PREVENT TAKE-OVERS WITH THIS ONE WEIRD TRICK (SMITTYVB HATES HIM) #361

Closed
wants to merge 1 commit into from

Conversation

PlasmaPower
Copy link
Contributor

This PR adds an autocracy, as specified in data/autocracy.txt. I've hand-picked the members. If you think you should be included, please leave a comment with an explanation of why. The list will be expanded in the future of course.

At least one positive non-author autocracy review on the most recent commit of a PR is required for that PR to be accepted.

This does not give members of the autocracy much power. As the autocracy has a wide range of opinions, and only one of them is required to approve the PR, the only thing this prevents is things universally seen as bad, like take-overs.

@rhengles
Copy link
Member

I think I should be added mainly because I'm the leader of the voters ranking. Also, I do not try to approve PRs for the lolz, but only ones I think genuinely are in the best interest of the project. I'm planning on contributing something, but Python is not my native language 😛

vfor = sum(v for v in votes.values() if v > 0)
vagainst = abs(sum(v for v in votes.values() if v < 0))
autocracy_str = "an" if autocracy_satisfied else "**NO**"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this "a" instead of "an"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch - I previously left out "current" so it read "an autocracy review"

@PlasmaPower
Copy link
Contributor Author

@rhengles Fair enough, added.

At least one positive autocracy review on the most recent commit of a PR
is required for that PR to be accepted.
@PlasmaPower
Copy link
Contributor Author

People downvoting this PR: would you mind leaving a comment as to why?

@mark-i-m
Copy link
Contributor

👎 (for now)

@PlasmaPower I think the requirement should be at least 2 people from the list. It's easy for one person to miss something, but two are harder to trick... of course, then it's hard to see where the boundary is. Why not 3 or 4 people?

Also, I think that reviewers should have a way of indicating autocracy-review approval separately from personal approval. i.e. I might not personally agree with the PR, but if other people out-vote me, I still want to indicate that it passed autocracy review.

@davidak
Copy link
Contributor

davidak commented May 29, 2017

I'm against it because i'm not included, so 👎

But seriously i think a democracy is important to hear everyones opinion and give him some power to define the way to our all future.

Similar like autocracy, but it isn't excluding anyone.

I'm contributing to open source (and free software) because i think it makes a difference. Excluding me with things like this PR wastes potential. And including me in your autocracy wouldn't make it better. You could always kick people that don't vote as you want. A little like our representative democracy in germany.

@warchildmd
Copy link

👎
That is not fun

@PlasmaPower
Copy link
Contributor Author

@mark-i-m I think 1 is the baseline, we should start there. It will at least prevent obvious takeover amends. We can move it up if stuff still gets through. At the very least, 1 is better than 0.

If I moved reviews to before votes in the vote tallying, would that be better? That way you could approve changes, but still vote them down. I could also make reviews entirely separate from voting.

@LosDrakakos
Copy link

Hi !
This is a strictly personnal (maybe not very rational and a bit selfish) opinion but,
I think that 9 members are not chaotic enough for chaotic decision making, even if it's a good mecanism to prevent takeovers.

Aren't takeovers a part of chaos ?

Plus I just discovered Chaosbot and I'd like to be involved in this (but I'm not a developper and I don't know anything about python for now.) so i'm not really happy to see my vote taken away so fast :/

If I may I'd like to share an alternative option, that is :
Boost the vote power of a few hand-picked people and and to automatically add more vote power to people on the top of voters list.

@PlasmaPower
Copy link
Contributor Author

PlasmaPower commented May 29, 2017

@davidak @cthulhuely My intent isn't to take away anyone's voice. The problem I'm trying to solve here is last minute changes to PRs or hidden changes that people miss when voting for.

Aren't takeovers a part of chaos ?

We get to choose what is part of chaos and what is not. We get to choose if we even want chaos. This PR aims to reduce chaos. I don't think most people want takeovers, as many dictators wouldn't restore democracy as I did. The project would die out without the voice of the people, as that's the foundation of it.

If I expanded the autocracy to the top 10 voters + the top 10 contributors (there might be some overlap there), would that be better?

@mark-i-m
Copy link
Contributor

I could also make reviews entirely separate from voting.

I think that would work...

I also hear the point made by a lot of others... And this PR has the potential to block PRs simply because I'm not available while I'm at work...

An alternative might be to make the threshold a lot higher unless somebody from the whitelist reviews for autocracy.

@hongaar
Copy link
Member

hongaar commented May 29, 2017

👍

I think you could as well call this something like a representative democracy. If this passes, the contributors kind of chose their parliament, while keeping some direct influence.

Important to note that

At least one positive non-author autocracy review on the most recent commit of a PR is required for that PR to be accepted.

So a reaction or comment is not enough, the parliament must post an actual review for a PR to pass.

@PlasmaPower
Copy link
Contributor Author

An alternative might be to make the threshold a lot higher unless somebody from the whitelist reviews for autocracy.

Maybe, but it's just as easy to amend a popular PR as it is to amend an unpopular PR.

this PR has the potential to block PRs simply because I'm not available while I'm at work

I'm trying to collect a wide range of time zones in my aristocracy, but that is a big concern of mine. Maybe make the extended voting window bigger?

@PlasmaPower
Copy link
Contributor Author

Because of the controversy of this PR, I'm probably going to create another PR after this one containing the more major changes suggested (like reviews not counting as votes, which I think is a great idea).

@LosDrakakos
Copy link

LosDrakakos commented May 29, 2017

I think that keeping the same vote threshold, but adding to the requirement at least one review from on of the autocrats could be a good alternative that may allow votes to be useful, and may allow to prevent unwanted takeovers.

@davidak
Copy link
Contributor

davidak commented May 29, 2017

@PlasmaPower i see your good intention here but i'm not sure if this is the right solution.

Could we give some users whose work is approved by the community a veto right?

That could be a specific emoticon that must be placed in an comment with a explanation why.

Every member has only one veto in a specific timeframe, like one month. (can get changed later)

When every member had used their veto it could get restored for everyone earlier.

@PlasmaPower
Copy link
Contributor Author

@cthulhuely That's exactly what this PR does!

@davidak Seems to me like that's more power. If the goal is to prevent sneaky take-overs, I think at least one approved review is a lot better than no vetos.

@mark-i-m
Copy link
Contributor

@cthulhuely

I think that keeping the same vote threshold, but adding to the requirement at least one review from on of the autocrats could be a good alternative that may allow votes to be useful, and may allow to prevent unwanted takeovers.

Isn't that the original suggestion?

@mark-i-m
Copy link
Contributor

@davidak

Every member has only one veto in a specific timeframe, like one month. (can get changed later)

By "member" you mean everyone on the list? I think that could work. But somebody could conceivably still take over with careful timing... IIUC your key observation is that most take-over-PRs would be rejected by popular vote anyway, right?

@davidak
Copy link
Contributor

davidak commented May 29, 2017

I have no time to think about this further because i have to work. The sad state of political activity in our society.

@davidak
Copy link
Contributor

davidak commented May 29, 2017

@mark-i-m members are usernames in a textfile, yes.

your key observation is that most take-over-PRs would be rejected by popular vote anyway, right?

yes, a healthy democracy should work this way. but there are some manipulative "politicians" like @PlasmaPower who tells they will do something that sounds good and later it will be worse for everyone. (he ended democracy and became a dictator earlier)

We need a cricital mass of people who has the time to participate in democratic processes and a way to prevent "take-overs" or similar bad things.

I think with that solution everyones vote should have the same power. But there could be a different thing like veto that don't touches the voting power.

We might implement it like @PlasmaPower suggested here but change it later if we have a better solution.

@PlasmaPower
Copy link
Contributor Author

PlasmaPower commented May 29, 2017

he ended democracy and became a dictator earlier

It should be noted that I didn't to anything under my reign and purposely restored democracy ASAP (except I accidentally rejected a PR - I thought my vote there would be normal, but all votes are processed before the server is restarted). If I wanted power I'd already have it.

@PlasmaPower
Copy link
Contributor Author

@davidak Also, excited for the next season of House of Cards coming out tomorrow? I know I am. 😉

@phil-r
Copy link
Member

phil-r commented May 29, 2017

What if based on reviews by "veterans" (parliament or whatever) following labels would be added:

  • approved (1 or or more +1 from veterans)
  • controversial (1 or or more +1 and 1 or or more -1 from veterans)
  • disapproved (1 or or more -1 from veterans)
  • not checked (no votes from veterans)

This will leave everyone equal, but will allow to quickly see general attitude of people who participated in the project a lot.

@PlasmaPower
Copy link
Contributor Author

@phil-r I still don't think that solves the main problem. #318 could amend dictatorship and it would easily get passed, simply because most people wouldn't notice or wouldn't have time to change their votes.

@mark-i-m
Copy link
Contributor

Drat! You have foiled my dastardly scheming 😡

@PlasmaPower
Copy link
Contributor Author

PlasmaPower commented May 29, 2017

@mark-i-m no we're working together to erase everyone's code, remember? 😉

@phil-r
Copy link
Member

phil-r commented May 29, 2017

pulled upstream

@PlasmaPower
Copy link
Contributor Author

I like the titles of the open PRs right now:

  • !!!SEIZE POWER HIJACK AMEND AUTOCRACY PR!!!
  • MAKE @Smittyvb LORD CHANCELLOR FOREVER!
  • PREVENT TAKE-OVERS WITH THIS ONE WEIRD TRICK (SMITTYVB HATES HIM)

@mark-i-m
Copy link
Contributor

Lol, democracy has discovered advertising 😆

@PlasmaPower
Copy link
Contributor Author

@mark-i-m inb4 "partner™ with™ Speedy™ for™ a™ Fast™ VPS™"

@@ -82,3 +82,7 @@
PR_STALE_HOURS = 36

API_COOLDOWN_RESET_PADDING = 30

# list of autocracy members
with open("data/autocracy.txt", "r") as f:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's a common practice and i don't know about it, but what's the point of using file for this? why not a list in settings.py for example?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK, keeps it a bit cleaner I guess?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kind of like the file for these long lists. We do the same for lists of emojis for example...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's going to get removed in the next iteration of the PR anyway (where it's a meritocracy).

@PlasmaPower
Copy link
Contributor Author

Okay, closing to setup the meritocracy.

@PlasmaPower PlasmaPower mentioned this pull request May 29, 2017
chaosbot pushed a commit that referenced this pull request May 30, 2017
#377: Add a meritocracy

Description:
I decided to not go with a clickbait title this time 😄

Look at #361 for more details, but **I tried to give the meritocracy minimal power. Democracy still decides the outcome >90% of the time.** This is just to prevent against sneaky take over attempts.

Basis of how it works:

> At least one positive non-author meritocracy review on the most recent commit of a PR is required for that PR to be accepted.

Changes from #361:

- Autogenerate meritocracy list (currently top 10 contributors + top 10 voters)
- Don't count reviews as votes (so members of the meritocracy can allow a PR without voting for it)

:ok_woman: PR passed with a vote of 30 for and 1 against, with a weighted total             of 27.5 and a threshold of 6.5.

Vote record:
@CheezBallzPi: 1
@CodingPower472: 1
@DasSkelett: 1
@Evanito: 1
@FrankVanVuuren: 1
@Leigende: 1
@MUCHZER: 1
@N00d13: 1
@Neofox: 1
@PlasmaPower: 1
@Redmega: 1
@Smittyvb: 1
@SylvainThrd: 1
@andrewda: 1
@cthulhuely: 1
@davidadas: 1
@davidak: 1
@eukaryote31: 1
@flibustier: 1
@hongaar: 1
@ike709: 1
@jmerle: 1
@mark-i-m: 1
@md678685: 1
@mgardne8: -1
@phil-r: 1
@rhengles: 1
@rudehn: 1
@tarunbatra: 1
@viktorsec: 1
@vivekzhere: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants