Extension:WikiLambda/Approving Implementations and Testers

Every contributor to Wikifunctions can create a new Implementation or a new Tester for a Function. Implementations and Testers are both on wikipages of their own. However, both types need to be approved by someone with the appropriate user-rights before they will be used by the Objects they are connected to, in order to make vandalism attacks more difficult.

Testers and Implementations should only be approved if they conform to the semantics of the Function they test or implement. This is a form of code review.

Testers and Implementations can be deactivated again by users that have the same rights, in case it turns out they were wrong. This should be the only reason to deactivate them. Any other reasons, Wikifunctions should deal with robustly (Especially early in the project, there might be cases where this is not true. These should be filed as bugs, and handled manually until they are resolved).


 * What are the consequences of an Implementation being approved even though it is wrong? : Function calls to that Function may return incorrect results. Also, the different Implementations of a Function should all agree with each other. An Implementation that does not can lead to confusion. If two different Implementations of the same Function have different results, this is in fact an indication that one or the other is wrong. Eventually, the system might downgrade Implementations that disagree with other Implementations. That is not implemented yet.


 * What are the consequences of a Tester being approved even though it is wrong? : Implementations that do not pass the given Testers are downgraded and are less likely to be called. This might remove perfectly correct Implementations from running, which might reduce the performance of the system, or lead to wrong results. That is not implemented yet.