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}