Release Notes

Versioning Scheme

PyroCMS, it's first-party addons, and the Streams Platform all maintain a Semantic Versioning convention: MAJOR.MINOR.MATCH

Patches may be released as often as every week. Patches will never contain breaking changes.

Minor releases will be released as communicated (usually every 4-6 months) and will also never contain breaking changes to standard installations but may require database migrations. Minor version changes may also contain small changes necessary to custom extensions or overridden configuration for example; however these changes will always be communicated through release notes.

When referencing the Streams Platform or addon packages from your composer.json, you should always use a version constraint such as ~1.6.*, since patches are safe and minor versions may include migrations.

Major releases are separated by years and represent fundamental shifts in the framework's architecture and/or conventions. Currently, there are no major version changes in development.

Support Policy

For LTS releases, such as PyroCMS v3.6, bug fixes are provided for 2 years and security fixes are provided for 3 years. These releases provide the longest window of support and maintenance. For general releases, bug fixes are provided for 6 months and security fixes are provided for 1 year. For all first-party addons, only the latest two releases receive bug fixes.

PyroCMS 3.7

Version 3.7 is one of our larger updates. We've made numerous changes to increase performance, updated to Laravel 5.7, added a new UI feature, and included a brand new System management and monitoring module among other neato things. Please explore the following changes in PyroCMS v3.7 and their related release notes before proceeding to update.

Deprecated Legacy Installer

The installer package has been deprecated and has been removed from 3.7 documentation: https://github.com/pyrocms/installer

Please use composer create-project pyrocms/pyrocms instead: https://pyrocms.com/documentation/pyrocms/3.7/getting-started/installation

Shift to Laravel Mix

We are deprecating our PHP compiler Assetic. Unfortunately this package has long fallen behind. It is becoming very difficult to justify carrying its weight.

Themes and addons are now scaffolded for use with an npm run install && npm run watch and go approach using Laravel Mix. Webkit and similar tooling is clearly the standard and this project and it's developers will greatly benefit from the shift away from PHP compilers.

This is also a performance update because Assetic causes additional load when checking things for cache and compiling on the fly. Not to mention a slightly lighter project footprint will come of eventually dropping it and it's dependencies entirely in 4.0.

New Documentation

Initial documentation reformation has begun. You can see the progress starting here: https://pyrocms.com/documentation

Much work has already been done but this is an ongoing effort to continuously improve documentation from here forward. So far, structure has been improved. Content has been improved. Formatting has been improved and maintainability as well. Some standards have also been put in place to ensure more thorough and consistent documentation process and outcome going forward.

Table Plugin Function

You can now use table much like you can form or entries to display an entry table in your views.

Table Function Documentation{.link}

Shortcut UI

We've added UI for notification-like indicator / shortcuts in the topbar of the control panel.

Shortcuts UI Documentation{.link}

Automatic Routing

We've automated controller actions to routes for you based on a predictable pattern. This reduced the amount of routes needing stored and looked through tremendously. Huge thanks to @frednwt for helping with this feature!

Automatic Routing Documentation{.link}

Automatic Override Deprecation

Addon's no longer automatically override views using the resources/views/addons/** directory method.

This feature will remain until it's removed in the next version. You can disable it for testing or new projects by placing AUTOMATIC_ADDON_OVERRIDES=false in your project's .env file.

View Override Documentation{.link}

Disabled Laravel Package Discovery

We've added the following to the extra section of our composer.json file.

"laravel": {
    "dont-discover": [
        "*"
    ]
}

System Module Release

The System module is built on top of Laravel's Telescope package but is contained within the Control Panel and has some added functionality.

Addon Updates

Many addons have been cleaned up in order to improve performance, leverage automatic routing, remove assetic dependencies, and in preparation for the new marketplace. Below are the feature/functionality updates in 3.7 core addons.

Settings Module Update

The settings module now dumps settings to file for caching. We've also addressed issues around caching configuration so you can now run php artisan config:cache out of the box.

Settings Module{.link}

Redirects Module Update

Redirects now dumps redirects to route file and caches domain redirects too. The php artisan route:cache command is now supported out of the box.

Redirects Module{.link}

Addons Module Update

Addons has been reworked in preparation for the new marketplace. We've improved on over-the-air addon management and shifted to caching repository listings locally in the database. One initially imported (behind the scenes) it will keep itself update to date automatically.

To get started with the new addons module after updating, run php artisan addon:reinstall addons --seed and then run php artisan addons:sync for an initial import.

Addons Module{.link}

Users Module Update

We've made a couple small adjustments to clean up multi-factor authentication (see the Authy Authenticator post released in parallel with this one).

Users Module{.link}

Pages Module Update

Pages now support translatable slugs and therefore translatable URI paths. We've also added fixed route names to pages so you can refer to their immutable route name instead of the path or fetching by ID from the DB.

Pages also dump routes to file now in order to reduce overhead in routing pages and support route caching.

Lastly pages can now be scheduled similar to Posts. You can enable a page and schedule it to go live at a later time.

Pages Module{.link}

Posts Module Update

Posts now support translatable slugs.

Posts Module{.link}

Files Module Update

Added ability to move files from folder to folder. Vastly improved file.url or $file->url() performance.

Files Module{.link}

Multiple Field Type Update

Added the ability to check multiple records and add selected to your selection.

Multiple Field Type{.link}

Files Field Type Update

Added the ability to check multiple files and add selected to your selection.

Added allowed_types validation to selections.

Files Field Type{.link}

File Field Type Update

Added allowed_types validation to selection.

File Field Type{.link}