SMF Community Helpers > Customization Development

Procedures on reviewing mods

(1/7) > >>

Suki:
This is a list of things to consider when reviewing a mod, take this list as a reference and as a guide, this list is in no way definitive and can change at any time.

Packaging

* Make sure the package un-zips properly.
 - All files should be in the root of the zip, and not inside a folder in the zip.

* Zip must contain a package-info.xml, in the package-info.xml check for the following:
  - File must have a valid ID and version number tag.
  - Make sure it has install and uninstall routines for all version that it says it is compatible with on the mod page

* Make sure xml files are formated properly for the format (BoardMod or XML) they are using
Installation

* Test the install and uninstall on a test board for each version the mod is compatible with
* Check the install files.
It should perform the task with no error.
For creating/updating/deleting tables, the mod should follow the SMF standards, for 2.0 the mod should use $smcFunc rather than specific database functions.
* Source files should be in Sources dir, Template, css, language and js files should be in Themes dir.
Code Reviewing

* Make sure the code is clean, no queries in template files, no using superglobals/$modSettings vars directly without checking for it's existence first, queries for 2.0 must follow the Mod Authors: SMF 2.0 Database Functions, mod should be coded following the SMF Coding Guidelines, no globalizing vars without using them
* Make sure there are no security issues with the mod (ie data is properly sanitized before being put into the database, etc). The mod should not introduce security vulnerabilities.
* Make sure there isn't a huge performance hit, check if the queries can be minimized or merged, suggest the cache system when possible.
* Check for conflicts with default features of SMF (ie requiring files in Settings.php) every mod should work with no issues in a vanilla SMF installation, the mod shall produce no errors and shouldn't interfere with any SMF default behavior unless it is specified and is the mod intention to do so.
* If the mod is using css3 properties, the mod author should include a note in the mod's description.
* If the mod uses php5+ functions, a note should be included on the mod's description.
Licensing

* Make sure the mod has a license and a license note in the mod's description.
* Restrictive licenses are permitted but the mod author should explicitly grant permission to SMF.org to redistribute their work on simplemachines.org website.
* If the mod is using external libraries make sure the mod gives proper credit and comply with the library license.
General Checks

* Make sure the features of the mod work correctly as announced by the mod.
* If the mod adds permissions to a page/section, make sure you cannot access that page/section manually.
* Text strings should use the SMF standard $txt array, English strings are mandatory, mod text files should use the following format: modname.language.php
* Where Integration hooks can be used, suggest they use them.
Feel free to suggest more guidelines.

Fustrate:
Can we get these categorized into sections? A single long list is daunting, but ~3 separate subsections are much more easily managed.

"I've checked everything under Package Format, can someone else check Security, Coding Standards, and Installation?"

emanuele:
Linked to http://wiki.simplemachines.org/smf/$smcFunc instead of the topic.

IchBin™:
How about this?


--- Quote ---
Packaging

* Make sure the package un-zips properly.
 - All files should be in the root of the zip, and not inside a folder in the zip.

* Zip must contain a package-info.xml, in the package-info.xml check for the following:
  - File must have a valid ID and version number tag.
  - Make sure it has install and uninstall routines for all version that it says it is compatible with on the mod page

* Make sure xml files are formated properly for the format (BoardMod or XML) they are using
Installation

* Test the install and uninstall on a test board for each version the mod is compatible with
* Check the install files.
It should perform the task with no error.
For creating/updating/deleting tables, the mod should follow the SMF standards, for 2.0 the mod should use $smfFunc rather than specific database functions.
* Source files should be in Sources dir, Template, css, language and js files should be in Themes dir.
Code Reviewing

* Make sure the code is clean, no queries in template files, no using superglobals/$modSettings vars directly without checking for it's existence first, queries for 2.0 must follow the Mod Authors: SMF 2.0 Database Functions, mod should be coded following the SMF Coding Guidelines, no globalizing vars without using them
* Make sure there are no security issues with the mod (ie data is properly sanitized before being put into the database, etc). The mod should not introduce security vulnerabilities.
* Make sure there isn't a huge performance hit, check if the queries can be minimized or merged, suggest the cache system when possible.
* Check for conflicts with default features of SMF (ie requiring files in Settings.php) every mod should work with no issues in a vanilla SMF installation, the mod shall produce no errors and shouldn't interfere with any SMF default behavior unless it is specified and is the mod intention to do so.
* If the mod is using css3 properties, the mod author should include a note in the mod's description.
* If the mod uses php5+ functions, a note should be included on the mod's description.
Licensing

* Make sure the mod has a license and a license note in the mod's description.
* Restrictive licenses are permitted but the mod author should explicitly grant permission to SMF.org to redistribute their work on simplemachines.org website.
* If the mod is using external libraries make sure the mod gives proper credit and comply with the library license.
General Checks

* Make sure the features of the mod work correctly as announced by the mod.
* If the mod adds permissions to a page/section, make sure you cannot access that page/section manually.
* Text strings should use the SMF standard $txt array, English strings are mandatory, mod text files should use the following format: modname.language.php
* Where Integration hooks can be used, suggest they use them.
--- End quote ---

Suki:
Yes, that is more readable :)

Navigation

[0] Message Index

[#] Next page

Go to full version