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

Edit and voting process #4

Open
WithoutPants opened this issue Nov 10, 2019 · 1 comment
Open

Edit and voting process #4

WithoutPants opened this issue Nov 10, 2019 · 1 comment

Comments

@WithoutPants
Copy link

Propose an edit system as follows. Mostly based on the MusicBrainz model.

Any change to a performer, studio, scene or tag must be submitted as an "Edit". The Edit will have the details of the change, the user submitting the change, an optional comment describing the change and any supporting information (such as a URL source).

Support the following Edit types:

  • create new entry
  • modify existing entry
  • delete existing entry
  • merge one or more source entries into a target entry (for handling duplicate entries)

Once an edit is submitted, users with sufficient permissions will be able to vote and comment on them. A vote may be one of the following types:

  • Accept
  • Reject
  • Immediately accept. High-privilege function. Immediately accepts the proposal and queues for application.
  • Immediately reject. As above, but rejects the edit immediately.

Edits stay open for voting for a configurable amount of time, or may optionally stay open until successfully voted. An Edit will be accepted before this time if it receives a configurable amount of Accept votes without any Reject votes. An Edit may also be accepted earlier if a user with sufficient privileges votes to Immediately Accept. Likewise, an edit will be immediately rejected if a user with sufficient privileges votes to Immediately Reject. At the end of the voting period, the Edit will be accepted or rejected based on the balance of votes on the Edit. It will configurable to require a minimum amount of votes before accepting - or requiring at x more accept than reject votes to accept the Edit.

The first Reject vote will extend the deadline for the edit by a configurable amount of time. This allows the submitter to respond to issues around the edit that lead to the Reject vote.

Modifying an Edit while it is being voted on may optionally reset votes and the deadline.

Different votes types may have different voting configurations and required edit and voting permissions.

Voting types will have the following configuration options:

  • unanimous_votes_to_accept: amount of unanimous Accept votes before an Edit will be applied
  • unanimous_votes_to_reject: amount of unanimous Reject votes before an Edit will be rejected
  • minimum_vote_time: minimum amount of time that time that an Edit will stay open for voting, regardless of votes
  • vote_time: default time that an Edit will stay open for voting before it is accepted or rejected. May be 0 to have no deadline.
  • minimum_accept_margin: minimum difference between accept and reject votes after the deadline to accept an Edit. So a value of 1 requires accept_votes - reject_votes >= 1 to accept, for example.
  • reject_vote_time_extension: amount of time to add to voting deadline when the first reject vote is received for an Edit.
  • reset_votes_on_modify: behaviour when an Edit is modified by the submitter. all - reset all votes, none - reset no votes, accept - reset Accept votes, reject - reset Reject votes.
  • extend_vote_time_on_modify: amount of time to add to voting deadline when an Edit is modified by the submitter.
@Leopere
Copy link
Collaborator

Leopere commented Nov 11, 2019

Great discussion starter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants