Package Sources

Dashboard > Extend concrete5 > Upload Package

Package magic can 'upload' packages from a range of sources. 

Latest documentation for Package Sources can be found at https://demo.c5magic.co.uk/addons/package-magic/package-source-documentation

Validation of zip archive contents

Uplods are checked for a range of issues and rejected if any problems are found. You have checkbox control over which issues are enabled, by ticking to ignore specific checks. Further checks can be added by speifying glob matches.

  • Ignore dot files    
  • Ignore __MACOSX    
  • Ignore Thumbs.db  
  • Ignore .sh and other shell scripts and batch files
  • Ignore executable file types such as .exe
  • Ignore file types containing non alphanumeric characters  
  • Do not check compilation
  • Allow current version to be overwritten
  • Skip validation for files matching *glob* patterns
  • Additional validation to reject files matching *glob* patterns

If you have a good reson for installing a package containing a file that fails one of these validation checks, you have two choices. You could disable the entire class of checks by deselecting the applicable checkbos. Or you can specify a glob match to exclude just that file from checks using "Skip validation for files matching". For example, if you want to allow .htaccess files, a glob pattern of */.htaccess would allow any subdirectory of the package to contain .htaccess files.

You can similarly specify additional validation through "Detect files matching". Here each line comprises a glob match for the check to apply, then text to use as an error message. For example, entering */Gruntfile.js unwanted Grunt will complain if the package contains a Grunfile.js and provide the error message "Unwanted Grunt".

After uploading

When a new package is successfully uplaoded, the package is immediately shown in the core Extend concrete5 > Add Functionality > Awaiting Installation section, ready for you to do any of Install, Apply Package Build Tools or even download a rebuilt archive without installing.

When an already installed package is uploaded, the default behaviour is to run the upgrade immediately. If that is not possible, the core Extend concrete5 > Update Add-ons page is loaded to run the upgrade.

Any update to a package source is made atomically. After running a Package Magic Upload, the package source will be either all the new source, or should the upload fail, all the old source.

Package Source Plugins

Latest documentation for Package Sources can be found at https://demo.c5magic.co.uk/addons/package-magic/package-source-documentation

Sourcing packages from GitHub

Archives for packages downloaded form GitHub projects do not usually contain a root directory named after the package handle. To accomodate such packages, on the upload dialog look for the section Advanced Options and check Fix paths in archive from package handle.

This will look inside the archive to get the package handle from the controller and fix the file paths to match the handle. Caution - this bypasses some checks on correctly formed packages. This option may be necessary when downloading from GitHub, where the internal directory may not follow the concrete5 naming requirement. Beware that archives from GitHub may not actually be concrete5 packages! For example, they may need comp[oser or other build dependancies to be resolved before they can be installed.

Coping with execution time limits

Uploading a package can be hindered by systems outside your server. For example, uploading a file from an external URL or by direct upload are dependant on the responsiveness of the external system the file is being uploaded from. If the external system is heavily loaded, it may be a little tardy about serving the file you are uploading, so causing the upload to fail. 

Should that happen, often simply trying again will be successful.

Should you continue to have problems with a package or source, Package Magic provides some tricks to spread the load and hence achive a sccessful upload:

  • In Advanced Options, check to Do not automatically run package update, so unpacking and update become two seperate actions. You can then run update manually through Extend concrete5 > Update Add-ons 
  • In Relaxed Validation, check to Do not check compilation. A package that is not already installed will stay "Awaiting Installation" and you can then use Extend concrete5 > Package Tools > Check Compilation to run a compilation check file-by-file. 
  • Upload the package archive .zip using the concrete5 file manager, then use the Package Magic source  Upload Package > From File Manager.