Operation Protopllama - Released August 18, 2020
This is the long-awaited official public release of Package Manager! We also managed to fit a number of other improvements in, including some improved javascript and template development features. Another of our proud achievements in this release is the completion of our image compression offering. And no release would be complete without a few bugfixes.
Package Manager is our version of plugins or extensions in other content management systems. Except that instead of allowing you to change the core functionality of the CMS packages make it easy for you to share and adapt assets across sites - including content, templates, custom site settings, etc...
Package manager comes with its own full permission system, user agreements, package versioning, dependencies, automatic vs manual updates, and more.
There are two new significant workflows related to package manager that developers in particular will need to understand in order to take full advantage of it. The first is a developer-only workflow for package authoring. The second is available to anyone with write access to a site and is the package installation workflow.
We have created a full tutorial to help developers understand package authoring. If you want to know the full details of package authoring you should complete the Package Authoring Tutorial. In summary, however, there is a completely new interface for developers to author packages. There, developers will configure repositories, packages, and package versions for use either by themselves or by other users. Each package version is composed of assets and dependencies. Dependencies will be installed either before or at the same time as the current package. Assets will be copied to the new site during package installation and used either to create, update, or delete assets on the new site.
When a user wants to install a new package on their site, they will utilize the new package installation workflow. This starts by navigating to "Site" -> "Site Packages" and clicking on the "Add Package" toolbar button.
From there, the user will select one or more packages to install, select their versions and update methods, agree to their user agreements, and begin the installation.
The next step is to customize the installation - including resolving any conflicts, selecting any necessary mappings, adjusting which assets get installed, and even customizing the assets before the installation if desired.
Once the user is ready to complete the package installation, it will be fully validated and then committed to the new site. If desired, the user can also publish all assets modified by the installation at the same time.
Updates to a package can either be completed manually or automatically.
Manual updates are completed in much the same way as the initial package installation, although there are a few additional ways to initiate the update.
Packages configured for automatic updates will attempt to install the latest version of a package any time a newer version is activated. If there is any step in the update process which cannot be completed automatically (eg: there is a conflict with one of the assets, the new version requires an asset to be mapped, or validation fails for some other reason), the update will be put on hold and may either be completed or abandoned manually. In either case - whether the automatic update succeeds or fails - the user will be notified.
As part of the full release of Package Manager, we have changed how new sites are created. In particular, new site themes are now pulled directly from "Full Site" packages that the user/account has access to. As a result, it is now far easier to create your own public or private themes for use in creating new sites.
The workflow for creating full site packages is the same as for any other package type, except that it includes some additional validation. Full site packages MUST be capable of being installed on a new site without any user input - at least at the time that the package version is activated.
The workflow for finding a full site package during site creation has also been dramatically improved. Try it and tell us how you like it.
In addition to the ability to create and distribute packages, there are a number of additional features and improvements for template developers in this release:
Marketpath CMS now includes the ability to combine multiple javascript files into one, and/or to minify javascript files.
When creating or editing javascript files, you now have the option to specify "Pre-Includes" and "Post-Includes". Any selected scripts will be automatically prepended and/or appended to the current script in the order in which they are included - including all nested scripts (eg: a pre-included script which contains other pre-included scripts). If the same script is included multiple times, the content will only be included once.
Pre- and Post-Includes will make creating "bundles" much simpler without requiring any new non-standard or conflicting javascript syntax. Furthermore it provides a simple method of handling javascript dependencies without having to write multiple scripts to the template. Developers should keep in mind, however, that if they include multiple javascript files in their template with common pre and post includes then the included scripts may be duplicated across their top-level javsacript files since included scripts are only guaranteed to be unique in a single compiled javascript file.
Script minification may now be accomplished by checking the new "Minify" option. Javascript minification has come a long way and most scripts can be safely minified without unwanted side-effects. Neverthelss, if a minified script unexpected fails then one of the first steps a developer should take is to turn minification off and re-test it. In addition to identifying whether the error is caused by minification, debugging a non-minified script is much easier than debugging a minified one.
One important note about Marketpath CMS javascript minification is that all included scripts are also either minified or not minified based on the same setting. So turning minfiication on will also minify all pre- and post-included scripts, and turning it off will include all pre- and post-included scripts without minification.
We have made a couple of very significant image processing improvements in this release of Marketpath CMS. The first is the ability to process and save images using the WebP image format, a new image format for the Web. Keep in mind that WebP is not supported by Internet Explorer or the current version of Safari, so if you want to take advantages of the image optimization made possible by this new format you will need to provide graceful degradation for browsers that do not support it.
The other - and likely more significant - improvement in Marketpath CMS image processing is the ability to compress png and jpg images without requiring the use of an additional third-party tool.
Marketpath CMS now offers three levels of image compression:
Image compression is handled at a several different points, most notably:
There are situations where image compression does not reduce the image size (eg: images other than jpg or png, semi-transparent grayscale pngs, pre-optimized images, etc...), but using image compression should never increase the image size. As such, we recommend that you keep your site-wide settings at either "lossless" or "lossy" for the best site performance.
One further note on image compression is that it takes longer to generate a compressed image than an uncompressed image - and the greater the compression the longer it takes to generate. For images compressed on upload this should be negligible as the processing time happens once on upload and then never again. However, for images compressed on processing this will take place every time the image must be re-generated - such as when displayed using a new image preset, when an image is replaced, when an image preset is updated, or when the originally-generated image expires and must be re-created (up to 1 year later). In particular if you use a lot of images and image presets on your site and the images load too slow for your tastes you can try reducing the compression level to either lossless or none.
Finally, keep in mind that these settings only apply to new uploaded and processed images. They will not affect any images previously uploaded or processed - though in the case of image presets the processed image will eventually expire and be re-processed. As such, changing these settings may not have any immediate effect on your site but will make a difference as more images are uploaded and processed.
Some other enhancements present in this release include:
Package Manager is a feature that we are incredibly excited to announce. We have spent a great deal of time planning, designing, building, testing, and refining it. We had completed the majority of related functionality several months ago but we have been waiting to fully release and announce it until we were confident that we had worked through all of the initial issues and had a product that fully meets both our quality and functional requirements.
Does this mean that all development on package manager is complete? Of course not! We already have a number of planned improvements on our "short list" for the coming months - such as favorite packages and a guided package installation wizard. And, of course, we will continue to refine and improve package manager in the future just as we plan on continued improvement all of Marketpath CMS offerings.
If you have any suggestions for ways we might improve Package Manager or other parts of Marketpath CMS, we would love to hear from you. And, of course, please don't hesitate to let us know if you run into any issues. Our desire is to constantly improve Marketpath CMS in order to make it the best Content Management System in the world; and our philosophy is that we can't fix issues or make improvements that we don't now about.