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

Take it easy #275

Merged
merged 2 commits into from
May 26, 2017
Merged

Take it easy #275

merged 2 commits into from
May 26, 2017

Conversation

xyproto
Copy link
Contributor

@xyproto xyproto commented May 26, 2017

I think the voting window is too short, especially for people in different timezones than the US.

After the initial interest in chaosbot is slowly starting to fade, it makes sense to slow down the time limits in the voting process just a bit.

@flibustier
Copy link
Contributor

flibustier commented May 26, 2017

A dynamic time curve could be nice! Like the one for Bitcoins 😄
Bitcoin over time
With Y axis the time limits between actual and the cap limit for long term!

settings.py Outdated
@@ -73,4 +73,4 @@

# PRs that have merge conflicts and haven't been touched in this many hours
# will be closed
PR_STALE_HOURS = 24
PR_STALE_HOURS = 48
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe there's a middle ground here? I haven't seen this misfire.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

36?

Copy link
Contributor

Choose a reason for hiding this comment

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

Sure.

@rhengles
Copy link
Member

A dynamic time curve

This is a good idea. For example, I would do this:

Before 1 hour:

  • if PR got >= +30 points = approved
  • if PR got <= -30 points = rejected

Before 2 hours:

  • if PR got >= +15 points = approved
  • if PR got <= -15 points = rejected

Before 3 hours:

  • if PR got >= +9 points = approved
  • if PR got <= -9 points = rejected

Before 4 hours:

  • if PR got >= +6 points = approved
  • if PR got <= -6 points = rejected

Before 5 hours:

  • if PR got >= +3 points = approved
  • if PR got <= -3 points = rejected

After 5 hours:

  • Approve if PR has > +1 point, reject otherwise

@PlasmaPower
Copy link
Contributor

@rhengles The threshold should always be at least 2 (probably 3) to approve, as otherwise an insta-merge attack is possible. Yes, we fixed that one bug, but 3 votes removes a lot of attack possibility.

@hongaar
Copy link
Member

hongaar commented May 26, 2017

@rhengles It'd keep the current voting window and thresholds as they're currently defined, they work pretty well I think. Increasing the voting window as project gets older (as @J0hn- suggested and if I understand correctly?) can count on my vote.

@rhengles
Copy link
Member

Good point. Then we could do:

After 4 hours:

  • if PR got >= +3 points = approved, reject otherwise

Either way, we must make sure to count the time from the last commit.

@hongaar the point is to not to unnecessarily hold a PR which has a lot of traction or rejection.

@hongaar
Copy link
Member

hongaar commented May 26, 2017

Hmm... I don't think holding a PR is a problem per se. It will get merged eventually (after window passes) so it'd be just some good exercise in patience. If we rush the merging of PRs we'd be at risk of another attack at 'low traffic hours' from contributors with some friends. On the other hand, we're already at risk of such an attack anyway... kind of...

@flibustier
Copy link
Contributor

Thinking about that, I suggest the following empiric formula:
save
On the X axis : The number of days since the project was created (now - creation date, in days)
On the Y axis : The number of hours for the " vote window"

I'm righting the formula in a more mathematical form…!

@rhengles
Copy link
Member

IMO that window is too big

@hongaar
Copy link
Member

hongaar commented May 26, 2017

Pro tip: add a log() function somewhere ;)

@flibustier
Copy link
Contributor

flibustier commented May 26, 2017

We can debate about the « too big » for the voting window!
I think the project needs short vote window on the beginning (bug fixes, etc) but large window when the project is stable and not everyone is full time on (=> avoid malicious merge)
So maybe the constant 12h for long term is too big, what would you suggest guys ?

@hongaar
Copy link
Member

hongaar commented May 26, 2017

I don't think that 12h is too big at all. More mature software projects use windows way bigger than that. It'll just require a bit more coordination, as one merge can easily cause conflicts in upcoming proposals, etc.

I'd say a logarithmic curve from 3h --> 24h long term (+- 1y)

Copy link
Contributor

@nstanard nstanard left a comment

Choose a reason for hiding this comment

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

Great work everybody!

@rhengles rhengles mentioned this pull request May 26, 2017
@chaosbot chaosbot merged commit d1cfad2 into Chaosthebot:master May 26, 2017
@chaosbot
Copy link
Collaborator

🙆‍♀️ PR passed with a vote of 21 for and 1 against, with a weighted total of 20.0 and a threshold of 6.1.

See merge-commit d1cfad2 for more details.

This was referenced May 26, 2017
chaosbot added a commit that referenced this pull request May 27, 2017
#309: Dynamic voting window 🚀

Description:
This PR bounces on suggestions made in #275

That is to say :
- The voting window is now the same as usual (this is now call as "initial_voting_window")
- Two reasons can now extend the voting window (call as "extended_voting_window") :
«  There are two scenarios that the voting window is needed to be long; where it is being hotly debated, and where it gets no votes for many hours. »
And what is the value of the "extending_voting_window" ?
The value depends of the time since the creation date of the repo, following this rule :

![save 2](https://cloud.githubusercontent.com/assets/9994935/26520642/ed492c04-42d6-11e7-9911-704805a4ab8a.png)


When the repository is less than 3 days, the extending voting windows is 3 hours
When the repository is more stable and advanced, 16 days or more, it's 9 hours

:ok_woman: PR passed with a vote of 11 for and 0 against, with a weighted total             of 11.0 and a threshold of 6.2.

Vote record:
@Ealhad: 1
@J0hn-: 1
@Leigende: 1
@akilegaspi: 1
@aslafy-z: 1
@eamanu: 1
@jakejdavis: 1
@paris-ci: 1
@rhengles: 1
@rudehn: 1
@tarunbatra: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants