github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/examples/gno.land/r/x/nir1218_evaluation_proposal/EVALUATION.md (about)

     1  # `Contribution Evaluation`
     2  
     3  ## Abstract
     4  
     5  This document describes general ideas regarding contributions evaluation. The principles laid out are intended to be part of the Evaluation DAO.
     6  
     7  ## Contents
     8  
     9  - [Concepts](#concepts)
    10  
    11    - [Committee](#committee)
    12    - [Evaluation](#evaluation)
    13    - [Contribution](#contribution)
    14    - [Pull Request](#pull-request)
    15    - [Vote](#vote)
    16  
    17  - [Future Improvements](#future-improvements)
    18  
    19  - [Implementation](#implementation)
    20  
    21  ## Concepts
    22  
    23  ### General Ideas
    24  
    25  Contributors DAO will designate members of a committee. In the beginning, the evaluation committee members will be the core development team members or any other trusted entity.
    26  A committee will be given the mandate to evaluate a certain set of contributions.
    27  For example, the first committee will evaluate code contributions inside Gno central repository.
    28  A contribution will be associated with a pull request managed in Git.
    29  A Committee as a trusted entity can decide on a category and its corresponding evaluation criteria.
    30  A member can propose to add a category and its corresponding evaluation criteria.
    31  A member can propose a contribution for evaluation. However, the pull request category must be from the list of approved categories.
    32  At the time of writing, a member can vote based on as set of options either "YES" or "NO", all members need to approve a category or a contribution.
    33  
    34  ### Committee
    35  
    36  A group of designated members who are given a mandate to act as an evaluation authority.
    37  A DAO may elect a committee and designate its members based on contributions or merits of the members.
    38  A committee member can propose a contribution to avoid spam and confirm viable contributions will be evaluated.
    39  
    40  ### Evaluation
    41  
    42  A logical entity to group a certain types of contributions.
    43  
    44  #### Category
    45  
    46  A group of contributions that should be evaluated based on the same principles and guide lines.
    47  An example of a category is a bounty, a chore, a defect, or a document.
    48  
    49  ### Contribution
    50  
    51  A contribution is associated with a pull request.
    52  A contribution has an evaluation life cycle.
    53  A submission time is set when a contribution is added.
    54  A last evaluation time is set when a contribution is evaluated and approved by a member.
    55  An approval time is set when a contribution is approved by all members (or when a future threshold is reached)
    56  
    57  #### Submission
    58  
    59  Any committee member can submit a contribution.
    60  
    61  #### Status
    62  
    63  When a contribution is submitted its status is set to "proposed", its status will change to "approved" once approved by the committee or to "declined" otherwise.
    64  Intermediate status options such as "negotiation", "discussion", "evaluation" are TBD.
    65  A further discussion around the idea of deleting a contribution is required as it raises questions regarding record keeping, double evaluations, and the motive.
    66  
    67  #### Approval
    68  
    69  A contribution is approved once it reaches a certain threshold.
    70  
    71  ### Pull Request
    72  
    73  A pull request from a source control tool, namely GitHub.
    74  
    75  ### Vote
    76  
    77  #### Voters
    78  
    79  Voters are committee members, all committee members have the right and obligation to vote on a contribution.
    80  
    81  #### Voting Options
    82  
    83  The voting options available to a voter.
    84  A committee may set voting options for its evaluation categories.
    85  The initial option set includes the following options:
    86  
    87  - `YES`
    88  - `NO`
    89  
    90  #### Voting Period
    91  
    92  Voting period is set by the committee, all committee members are obligated to vote within the voting period.
    93  
    94  #### Threshold
    95  
    96  Threshold is the minimum percentage of `YES` votes from the total votes.
    97  
    98  #### Tally Votes
    99  
   100  ## Future Improvements
   101  
   102  The current documentation describes the basic ideas as expressed in the code.
   103  Future improvements listed below will be decided based on future discussions and peer reviews.
   104  
   105  - Committee negotiates contributions
   106  FIXME Next line is unfinished:
   107  - A committee may set voting options for its categories and evaluated contributions, otherwise; the Contributors DAO may set a global
   108  - A committee may set a threshold required for a category or a contribution to be approved, otherwise; the Contributors DAO may set a global threshold and quorum.
   109  - A committee sets evaluation criteria scoring range (1-10), scoring a contribution is essential when there are competing contributions (Game of Realm). Otherwise, the evaluation is a binary decision. Moreover, scoring should be translated to rewards of any sort, or become discussion points durning negotiation about the viability of a contribution.
   110  - Committee members assess contributions based on the evaluation criteria and vote accordingly.
   111  
   112  ## Implementation
   113  
   114  The implementation written is to express the ideas described above using code. Not all ideas have been implemented.