Dashboard > Extend concrete5 > Download Package
The Package Destinations dashboard page is where you can select an installed or uploaded and ready to install package, zip it up into an archive, and save the zip to any of a suite of desyinations.
Latest documentation for Package Destinations can be found at https://demo.c5magic.co.uk/addons/package-magic/package-destination-documentation
The available options are pre-configured to suit most developers. In most cases you will keep all the checkbox options selected in order to create a package that passes upload validation.
In addition to the checkboxes, you can also enter patterns to Omit files matching. Simply provide patterns for additional file paths to omit when creating the zip archive, one per line. Patterns may contain shell wildcards * and ?. For example, */vendor/* will omit the /vendor/ directory from the package archive. *.bak will omit any .bak files from the package archive.
Under Options you can select a checkbox to attach the package version number to the zip file name, so package_handle.zip would be become package_handle-0.0.1.zip.
Such version number suffixes are not supported by the concrete5 marketplace, but some developers find it useful to keep track of package archive versions. If you are installing packages using Package Magic, Package Magic Sources will accept packages with version numbers in the zipped archive name and double-check the version number against that in the package controller.
By default, before creating an archive all php files are checked to confirm they compile. Should a particularly large package take too long to zip up, under Relaxed validation you can disable this check and remove a substantial part of the processing involved. You can then check compilation before downloading by using Extend concrete5 > Package Tools > Check Compilation to run a compilation check file-by-file.
Latest documentation for Package Destinations can be found at https://demo.c5magic.co.uk/addons/package-magic/package-destination-documentationCoping with execution time limits
Should your server not be able to cope with all of that in one go: