Skip to content

Edit and voting process #4

Open
@WithoutPants

Description

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions