The structure of the file is explained in detail below: insiderPackage.pkg -> This is the name of the update file. It can be any one and does not influence the operation of the algorithm (from which the pkg extension is maintained). > date / -> Directory containing the files that will be created within the project root and these files must follow the same structure that exists in the project. > control / -> Directory that contains the update control files. >> md5sums.json -> This file contains all md5 of the project files. The structure of this file should follow the following example: [ "1dabb1ec3b4e69190a24b57960c16770 frame_src / config / actions_default.json", "a4416457ed96574c3693fc1ca1dbe12c frame_src / config / core.json" ] >> control.json -> This file contains the package's primary data. Here is an example of the content: { "package": "insider-framework", "version": "2.0.0", "maintainer": "Insider TI ", "installed-size": 3231658, "section": "guild", "provides": { "sagacious": "2.0", "phpmailer": "5.2.13", "php-openssl-cryptor": "1.0.1", "moment.js": "2.22.1", "jquery": "3.3.1" }, "depends": { "sagacious": "= 2.0.0", "phpmailer": "= 5.2.13", "php-openssl-cryptor": "= 1.0.1", "moment.js": "> = 2.22.1, <3.0.0", "jquery": "> = 3.3.1, <4.0.0" }, "recommends": {}, "preinst-cmd": "", "postinst-cmd": "", "prerm-cmd": "", "postrm-cmd": "", "description": "The Insider Framework is a web framework that unites two languages ​​(PHP and Node.Js), delivering a versatile solution for building applications and web APIs" } Most of the fields in this file are self-explanatory. Special attention should be given to the following items: "preinst-cmd": "", "postinst-cmd": "", "prerm-cmd": "", "postrm-cmd": "", These lines respectively inform the command that should be executed BEFORE the package installation, AFTER the package installation, BEFORE the removal of the package and AFTER the removal of the package. The item "section": "guild" is >> changelog -> File that stores package changes to each version >> conffiles.json -> File that lists all configuration files present in the package. The files in this list should NOT be replaced (if it is a package update). In case of updating the configuration files, the "* -cmd" directives should be used to assist in this update. The following is an example of the contents of the conffiles.json file: [ "frame_src / config / actions_default.json", "frame_src / config / core.json", "frame_src / config / database.json", "frame_src / config / mail.json", "frame_src / config / repositories.json", "frame_src / registry / *", "frame_src / third_party / loader_addons.php", "frame_src / package.json", "packs / start / conf / objects.json", "packs / sys / conf / objects.json" ] >> license -> Directory that should contain the package license files. >> postinst / -> Directory that should contain the files used in the package postinstallation >> postrm / -> Directory that should contain the files used in post-removal of the package >> preinst / -> Directory that should contain the files used in the package preinstallation >> prerm / -> Directory that should contain the files used in pre-removal of the package