Help:JavaScript review process

Beta

To help provide a secure environment for Wikia's users, we are developing a community JavaScript review process. The feature is currently in beta, and is subject to change.

This process means that any edits to community JS will not be served to visitors until they have been checked and approved by a member of Wikia's trusted review team.

How does it work?
When the feature is enabled on your community, pages in the MediaWiki: namespace ending in *.js will become editable.

Edits to these pages will not affect what visitors receive until you submit the page for review. Wikia's review team will then check your JS and approve or reject it.
 * If it is approved, the changes will immediately become active on your community.
 * If it is rejected, a notice will be shown on the JS page, and an explanatory note will likely be left on the talk page.

So that you easily can test JS edits, we are introducing "test mode", which will allow your account to run unreviewed JS. Test mode is activated on a per-community basis, covers all local scripts, and lasts until disabled.

The status of individual scripts on your community are listed in a module to the right of that JS page. This module is also where you submit updates for approval and enable test mode. Monobook users can find the module via the 'review status' tab.

What are the criteria for approval?
With the introduction of the JS review tool, we will be introducing some new rules about how JS may be written. Note that these rules are not final.


 * All JS must be written in a clear, readable format. Any obfuscated code will be rejected.
 * All on-Wikia imports must be stored on MediaWiki namespace pages that end with ".js"
 * User namespace imports will not be allowed (see FAQ below)
 * Scripts stored outside Wikia will be approved on a case-by-case basis.
 * Any clear customization policy or violations will be rejected (e.g. hiding ads, collecting user data, major site layout changes).
 * JS that causes errors will be rejected.

Note: the approval process is not a review of the general quality of your code, nor about making judgement calls about how useful or valid a JS feature is. While we will let you know about serious problems, we won't be able to rewrite the code for you.

FAQ

 * How long will it take for my edits to be reviewed?
 * We aim for a speedy process - we don't want to get in the way of useful JS as much as possible. Scripts will be reviewed on a first-come, first-served basis.
 * Note that Wikia's JS-related tools are in ongoing development, and we are planning to make more tweaks and changes.


 * What if I need to make more edits after I submit my script for review?
 * Each JS page can only have one revision in the review queue. While you can make further edits after requesting a review, only the originally requested revision will be reviewed. If you want us to review a newer version, simply submit the page for review again - this will overwrite the previous request.


 * Why will you reject imports from the User namespace?
 * We would eventually like to re-allow unrestricted editing of User namespace *.js pages (beyond personal JS), but this cannot occur until they are no longer used in community JS. If you trust a user enough to run JS they have written, consider whether the user should be an admin, or copy their JS to the MediaWiki namespace.


 * What happens to scripts created before the tool's introduction?
 * They are pre-approved (we don't want to unnecessarily break customizations that work fine today), but this is subject to change.


 * How does test mode work?
 * While visitors will only be served approved revisions of JS scripts, enabling test mode allows your account to be served the latest revisions.
 * It is enabled on a per-account, per-community basis, covers all scripts used on that community, and lasts until disabled or you log out.
 * This should make it easier to test changes to your community's JS without worrying about it temporarily breaking the site for everyone!


 * How does approval work for cross-community imports?
 * If you import a script from another community, only approved versions will be served. This includes when test mode is enabled on your home community. You will have to enable test mode on the other community to receive the latest revision from there.


 * Does this affect personal JS?
 * No - the core personal JS pages (e.g. User:Wikia/common.js) remain freely editable.


 * I want to test this out / I have feedback or ideas about the tool!
 * Space in the beta test of this tool will be very limited - but we aim to make it a short beta, with the feature then going live site-wide.
 * Please let us know your feedback via Special:Contact!