Releases: userfrosting/UserFrosting
v4.6.7
What's Changed
- Integrating upstream Whoops issue 752/PR 751 by @StrykeSlammerII in #1217
- Fix error with hardcoded date in test
Full Changelog: v4.6.6...v4.6.7
v4.6.6
Fix
- Added dependencies to AddingForeignKeys Migration (#1212)
New Contributors
- @StrykeSlammerII made their first contribution in #1212
Full Changelog: v4.6.5...v4.6.6
5.0.0-alpha2
The release of Alpha1 was created using the wrong branch. This release fix this, and brings no other changes from the first (intended) release.
This is the first pre-release of UserFrosting 5 !
IMPORTANT: This version is unstable and meant for development purpose only. It's should not be used on your own project. Things are not 100% final and no documentation is provided.
This version is meant as a the first stepping stone of the big V5 released, a way to "freeze frame" the current code and as a first technical release test. It's also meant for UserFrosting developers to get a first glimpse of what's coming up.
While no major changes are planed at this stage, things could still be moving around. No breaking changes might not be documented during the alpha stage. Limited support for UF5 can be found for this alpha on the chat or GitHub Discussions.
Requirements
- PHP 8.0 or 8.1
- Node.js 14 or higher
- Database (MariaDB, MySQL, Postgres, SQLite, or SQL Server)
- Composer 2
Installation
To install locally, you can use theses commands, as long as you met the requirements above (i.e. PHP and Node installed). When running the bake command, you can select sqlite
if you don't have a database engine installed.
composer create-project userfrosting/userfrosting UserFrosting "^5.0.0@dev"
cd UserFrosting/
php bakery bake
Seeds are currently not run automatically. To manually run seeds (to create default groups, roles and permissions), run this command:
php bakery seed
Website can be locally served with the following command and then be accessed at http://localhost:8888.
php -S localhost:8888 -t public
What is UserFrosting 5 ?
UserFrosting 5 is the culmination of more than a year of work by @lcharette. It is a complete rewrite of the backend PHP code. And by complete, we really mean complete. No class was left untouched! The main updates are :
- Slim 3 upgraded to Slim 4
- Pimple Container replaced with PHP-DI
- Frontend assets management replaced with Webpack Encore
- New Sprinkle system, now with extra modularity
- Skeleton type main repo for easier
- Built in sprinkle are now managed by Composer
- New Event dispatcher and listener services
- New Bakery command for easier debugging
- 100% test coverage and quality check through PHPStan
- And so much more
The Slim migration itself is a big deal. While brining UF to a more modern era, it had the most impact on the core changes applied to the UserFrosting framework. Most changes were made in response to the new Slim 4 requirements and changes. It also required the use of a new Dependency Injector, which itself really brought UF5 to a whole new level. You should really check out PHP-DI, it's awesome!
Basically, UF5 uses updated dependencies, all of existing code have been updated to new standard and new test coverage should provide better long term stability.
What UserFrosting 5 isn't ?
UF5 is not a drop-in replacement for UF4. The whole backend has been rewritten, with a new container, sprinkle system, etc. which will require most sprinkle to be updated manually.
UserFrosting 5 also offers the same frontend as UserFrosting 4. But the bases have been set for the future, with Webpack Encore and the current AdminLTE theme separated in it's own Sprinkle providing the necessary tools for Vue.js or other similar frontend.
Known bugs and missing features
While most features are ready at this point, some things are not:
- [Core] Default seeds are not run automatically on Bake
- [Core Sprinkle] CSRF service not reimplemented yet.
- [Core Sprinkle] Clear cache bakery command is not implemented yet.
- [Core & Admin Sprinkles] Sprunje pagination might not work properly.
- [Admin Sprinkle] Enabling/Disabling using the dropdown a user is not enabled (requires CORS).
- [Admin Sprinkle] Clear cache button doesn't work.
- [AdminLTE Theme] Alert messages might not be properly displayed, for example when a login error should be shown
- [Webpack Encore] Sprinkle entries needs to be manually copied in their parent sprinkle (Will require a custom plugin or contribution to Encore)
- [General] Some test coverage still need to be added
What's next? When will it be stable? How can I help?
There's currently no ETA on the release date of the first stable version. For now, alpha released are planed, when necessary, until all features and code coverage are done. Once this is done, the first beta should be released and work will start on the documentation. Once this is also done, the first stable release should be released.
The best way to help is to contribute to the code and create pull requests. You can also help by testing the current release and signaling bugs by opening a new issue. Just make sure to reference V5!
Alternatively, you can contribute through our Open Collective or buying a coffee round.
5.0.0-alpha1
This is the first pre-release of UserFrosting 5 !
IMPORTANT: This version is unstable and meant for development purpose only. It's should not be used on your own project. Things are not 100% final and no documentation is provided.
This version is meant as a the first stepping stone of the big V5 released, a way to "freeze frame" the current code and as a first technical release test. It's also meant for UserFrosting developers to get a first glimpse of what's coming up.
While no major changes are planed at this stage, things could still be moving around. No breaking changes might not be documented during the alpha stage. Limited support for UF5 can be found for this alpha on the chat or GitHub Discussions.
Requirements
- PHP 8.0 or 8.1
- Node.js 14 or higher
- Database (MariaDB, MySQL, Postgres, SQLite, or SQL Server)
- Composer 2
Installation
To install locally, you can use theses commands, as long as you met the requirements above (i.e. PHP and Node installed). When running the bake command, you can select sqlite
if you don't have a database engine installed.
composer create-project userfrosting/userfrosting UserFrosting "^5.0.0@dev"
cd UserFrosting/
php bakery bake
Seeds are currently not run automatically. To manually run seeds (to create default groups, roles and permissions), run this command:
php bakery seed
Website can be locally served with the following command and then be accessed at http://localhost:8888.
php -S localhost:8888 -t public
What is UserFrosting 5 ?
UserFrosting 5 is the culmination of more than a year of work by @lcharette. It is a complete rewrite of the backend PHP code. And by complete, we really mean complete. No class was left untouched! The main updates are :
- Slim 3 upgraded to Slim 4
- Pimple Container replaced with PHP-DI
- Frontend assets management replaced with Webpack Encore
- New Sprinkle system, now with extra modularity
- Skeleton type main repo for easier
- Built in sprinkle are now managed by Composer
- New Event dispatcher and listener services
- New Bakery command for easier debugging
- 100% test coverage and quality check through PHPStan
- And so much more
The Slim migration itself is a big deal. While brining UF to a more modern era, it had the most impact on the core changes applied to the UserFrosting framework. Most changes were made in response to the new Slim 4 requirements and changes. It also required the use of a new Dependency Injector, which itself really brought UF5 to a whole new level. You should really check out PHP-DI, it's awesome!
Basically, UF5 uses updated dependencies, all of existing code have been updated to new standard and new test coverage should provide better long term stability.
What UserFrosting 5 isn't ?
UF5 is not a drop-in replacement for UF4. The whole backend has been rewritten, with a new container, sprinkle system, etc. which will require most sprinkle to be updated manually.
UserFrosting 5 also offers the same frontend as UserFrosting 4. But the bases have been set for the future, with Webpack Encore and the current AdminLTE theme separated in it's own Sprinkle providing the necessary tools for Vue.js or other similar frontend.
Known bugs and missing features
While most features are ready at this point, some things are not:
- [Core] Default seeds are not run automatically on Bake
- [Core Sprinkle] CSRF service not reimplemented yet.
- [Core Sprinkle] Clear cache bakery command is not implemented yet.
- [Core & Admin Sprinkles] Sprunje pagination might not work properly.
- [Admin Sprinkle] Enabling/Disabling using the dropdown a user is not enabled (requires CORS).
- [Admin Sprinkle] Clear cache button doesn't work.
- [AdminLTE Theme] Alert messages might not be properly displayed, for example when a login error should be shown
- [Webpack Encore] Sprinkle entries needs to be manually copied in their parent sprinkle (Will require a custom plugin or contribution to Encore)
- [General] Some test coverage still need to be added
What's next? When will it be stable? How can I help?
There's currently no ETA on the release date of the first stable version. For now, alpha released are planed, when necessary, until all features and code coverage are done. Once this is done, the first beta should be released and work will start on the documentation. Once this is also done, the first stable release should be released.
The best way to help is to contribute to the code and create pull requests. You can also help by testing the current release and signaling bugs by opening a new issue. Just make sure to reference V5!
Alternatively, you can contribute through our Open Collective or buying a coffee round.
v4.6.5
v4.6.4
Fix
- Foreign Key constraint fails when an admin attempts to create a new user (#1190)
- Fix for AccountControllerTest when registration is disabled (#1192)
- Native install on PHP 8.* install fails due to eventdispatcher incompatibility between rockettheme and Symphony (#1195 & #1196)
- Fix PHP7.4+ compatibility in Model findUnique (#1193)
- Handle the case where all roles are removed from a user (#1194)
What's Changed
- Foreign Key constraint fails when an admin attempts to create a new user by @avsdev-cw in #1190
- Fix for AccountControllerTest when registration is disabled by @archey347 in #1192
- Resolve #1195-Update composer.json by @ssnukala in #1196
- Fix PHP7.4+ compatibility by @avsdev-cw in #1193
- Handle the case where all roles are removed from a user by @avsdev-cw in #1194
- Apply fixes from StyleCI by @lcharette in #1198
- Release 4.6.4 by @lcharette in #1197
New Contributors
- @archey347 made their first contribution in #1192
Full Changelog: v4.6.3...v4.6.4
v4.6.3
Security
- Added placeholder URL for
site.uri.public
in configuration to guard against Host Header Injection attacks by default in production.
IMPORTANT : As of 4.6.3,
site.uri.public
must be explicitly set in yourproduction
configuration to avoid security issues. If not set, some links and emails will not work properly. See Going Live for more info.
What's Changed
- Placeholder for
site.uri.public
in production by @Silic0nS0ldier in #1187 - Release 4.6.3 by @lcharette in #1188
Full Changelog: v4.6.2...v4.6.3