-
Notifications
You must be signed in to change notification settings - Fork 59
Trust Ratings
In #375 we're adopting the Advogato Trust Metric by RaphLevien:
When you create an account, you have very few privileges. However, you can 'certify' other people, and they can certify you. At present, the certification is simply a three-valued enum: Apprentice, Journeyer, or Master. This induces a nice big graph.
The next step is automatic evaluation of the trust metric. There is a set of users from which all trust flows (currently hardwired to be raph, miguel, federico, and alan). The evaluation itself is essentially a network maximum flow solver, for which nice efficient algorithms exist. The people reached by the flow are those accepted by the trust metric. With the three levels, the maxflow is computed three times: once with just the Master certs, once with Master and Journeyer, and once with all three.
Like all examples of a CapacityConstrainedFlowNetwork, the AdvogatoTrustMetric is robust against noisy or malicious cert data. It effectively blocks large numbers of people from being certified who don't meet the criteria. At the same time, people who do meet the criteria now routinely get certified within an hour of joining, thanks in part to the 'many eyes' nature of the process.
A Master is the principal author or hard-working coauthor of an "important" free software project, i.e. one that many people depend on, or one that stands out in quality. A Master has command of the tools and is an excellent programmer. Generally, a Master works equivalent to full time (or more) on free software. Ideally, a Master writes clearly about the work and its broader context, and serves as a mentor to others in the free software community.
Journeyer Journeyers are the people who make free software happen. A journeyer contributes significantly to an important free software project, or is the author of a useful or technically innovative project. A Journeyer is generally a competent programmer, but significant contributions of documentation, artwork, or other noncode goodies counts too. Ideally, a Journeyer works with others in the free software community to polish and refine the library of free software. While not necessarily the equivalent of full time, a Journeyer spends a significant amount of time on free software.
An apprentice is someone who has contributed in some way to a free software project, but is still striving to acquire the skills and standing in the community to make more significant contributions. Ideally, the Apprentice is in touch with either an individual mentor or a community that helps to gain these skills. An Apprentice spends a significant amount of time learning the craft of software development, whether by hands-on practice, academic study, or careful observation.