Introduction
The packaging of modules must follow the below guidelines to be recognised as a valid package by the Module Manager
Packaging Guidelines :
1)All the modules on the App Store must be in a zip format .
2) Two files of a module must be present
a) A module.inc file(eg: dsm.inc) which will contain the Module name and version number
$conf['dsm_name']=“Disease Surviellance Module”
Also the module name and version number of the dependancy modules separated by a colon
$conf['dsm_dependency']=“cap(2.5):msg(3.2):dvr(2.4.1)”
Above: “dependency” renamed from “dependancy” … spelling error ~ Greg


b) A module.zip file which will contain
1. All the php files (.inc) pertaining to that module .
2. A ““sql/upgrade”” folder containing the sql files to be executed with file name as v(version).sql (eg : v1.sql , v2.5.8.sql where 1 and 2.5.8 are versions respectively.)
3. A conf.inc file which must contain -
a) Module name in $conf['mod_<module>_name'] (eg: $conf['mod_mm_name'] = _t('Module Manager')
b) Module status to convey if the module is enabled/disabled eg: $conf['mod_mm_enabled'] = t('True'); alternatively 'False' for disabled
c) Module version must be specified (eg : $conf['mod_mm_version'] = 3
c) Module description must be specified (eg : $conf['mod_mm_desc'] = “Put all the text here ”
The above three configuration variables are a must if the package has to be recognised as a valid package by the Module Manager. Two files are placed because the App store and Sahana installation might not necessarily be in the same server so downloading the entire zip folder just to check the version might be load on the hosting server and will be Heavily time consuming on the client side as well .