Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Laravel 9 / PHP 8.1 #148

Merged
merged 256 commits into from
Jul 15, 2022
Merged

Support Laravel 9 / PHP 8.1 #148

merged 256 commits into from
Jul 15, 2022

Conversation

LukeTowers
Copy link
Member

@LukeTowers LukeTowers commented May 4, 2021

Winter is well on its way to supporting Laravel 9! Thank you for your interest in providing testing for this work, please read the following information on how to get started testing it and report any issues that you encounter!

See https://github.com/wintercms/meta/blob/master/l9-upgrade-notes.md for testing instructions and the upgrade guide.

Must Have

These issues are crucial for a smooth upgrade process and must be completed before 1.2 can go "stable":

Internals:

v1.1.9 Final changes:

Third Party / Dependencies:

  • barryvdh/laravel-debugbar doesn't support Twig v3.x yet, Winter.DebugBar should replace usage of Twig pieces to add support for v3 or a PR should be submitted upstream.

Post "stable" release:

The following features were added in Laravel 7-9 and require extra work to "winterize" them for easier consumption / usage in Winter projects. These do not delay "stable" release but should be dealt with soon after:

New Features:

  • Maintenance mode functionality changed in Laravel 8, see [8.x] Improved Maintenance Mode laravel/framework#33560. Explore combining backend maintenance mode setting with the framework maintenance mode, or better document the differences between them and what they're each best used for.
  • Core support for CORS: https://laravel.com/docs/7.x/upgrade#cors-support
  • Review Queue monitoring functionality
  • Review RateLimiter functionality
  • Review Prunable/MassPrunable model traits, especially as it relates to identifying models in the application
  • Review Model Broadcasting
  • Review ImmutableDates
  • Finish implementing create:model
  • Finish implementing create:migration
  • Review Laravel commands to identify ones that can be marked as replaced in Winter for aliasing and any that need to be "Winterized".
  • Review the difference between Laravel registered default commands and Winter ones and decide which Laravel ones to add / modify for use in Winter.
  • Symfony 5.4 added support for autocompletion in console commands, add support to all core commands and document it. Note: Currently waiting on documentation from Symfony
  • Newer Laravel versions don't require manual registration of console commands, investigate how we can implement that for modules and plugins and get rid of our registration code for console commands: https://laravel.com/docs/9.x/artisan#registering-commands
  • Opis/Closure also used in the ExtendableTrait functionality to support serializing classes with dynamic methods (Double check that the usage of the encryption key for serializable closures is being correctly applied)
  • Restore full Laravel Mailer behavior #45
  • Add SVG utility storm#61
  • [WIP] Revise class loader #481

Maintenance:

Documentation:

  • Document new ArraySource trait
  • Document new tests structure
  • Update 1.2 mail docs to reflect the changes to the configuration files and the introduction of the Driver plugins.
  • Event dispatcher now supports closure event handlers and queued closure handlers, review and document

API Changes:

  • Revise Cache system (see 9314a44)

Completed Work:

The following items have all been completed as a part of this Laravel 9 upgrade. Great job to everyone who contributed!

New Features:

Maintenance / Cleanup:

Compatibility Layer:

Dependencies:

  • upgrade to laravel 8 storm#26
  • Switching to Assetic as an external dependency removed the change in FilesystemCache where File::chmod($path) is called, investigate if that actually causes issues for us and we need to implement it in an override or if we're fine.
  • Review upgrade to Flysystem v3 (v2 support was added in Winter 1.2 WIP branch, v3 needs to be assessed & tested)
  • Revert composer dependencies to stable versions
  • Bump minimum version of Laravel to 9.1.0 (see laravel/framework@63ca843)
  • YAML upgraded from 3 to 5.1 ([WIP v1.2] Add full compatibility with Symfony\Yaml 4.4 storm#21)
  • Remove the embedded implementation of Assetic v1 and utilize Assetic v2 instead.

@LukeTowers LukeTowers added Status: In Progress maintenance PRs that fix bugs, are translation changes or make only minor changes labels May 4, 2021
@LukeTowers LukeTowers added this to the v1.2.0 milestone May 4, 2021
@bennothommo bennothommo changed the title [WIP] Support Laravel 9 LTS Support Laravel 9 LTS May 6, 2021
@tschallacka

This comment was marked as outdated.

@LukeTowers

This comment was marked as outdated.

@bennothommo

This comment was marked as outdated.

@tschallacka

This comment was marked as outdated.

@jaxwilko

This comment was marked as resolved.

* develop: (90 commits)
  Define signature for "defineProperties" method
  Add definition of "componentDetails" method
  Update `system` french lang files (#366)
  Update `backend` french lang file (#364)
  Update `cms` french lang file (#365)
  Fix clear color picker function, allow empty value
  Trigger "change" event on color picker when value changes
  Use better cursors for readonly color picker
  Adjust "force" option for plugin:remove
  Require explicit confirmations for CLI deletions
  Add PHP 8.1 option, drop other details field
  Add md_line Twig filter to expose Markdown::parseLine() (#370)
  Don't use the Cache facade in the service provider registration process.
  Fix return type hints for CMS Page and Controller (#362)
  Fixes typo in list of available encodings for importing
  Improved Ukrainian translation (#360)
  Constrain PHP version >= 7.2.9 and 8.0.x (#361)
  Improve Latvian translation (#358)
  Docs UI Fix paths to screenshots of diagrams (#359)
  Coerce Inspector set values to string
  ...

# Conflicts:
#	composer.json
#	modules/backend/composer.json
#	modules/cms/composer.json
#	modules/system/composer.json
* develop:
  Don't try to access the system parameter database table if no database is in use
config/app.php Outdated Show resolved Hide resolved
modules/backend/controllers/Files.php Outdated Show resolved Hide resolved
modules/system/classes/PluginBase.php Outdated Show resolved Hide resolved
bennothommo and others added 8 commits December 14, 2021 11:29
Was redundant, should be using environment config (config/testing/*.php) instead
* 'wip/1.2' of github.com:wintercms/winter:
  Update modules/system/classes/PluginBase.php
* develop:
  Backport changes from 1.2 and ignore public directory in default .gitignore
  Update custom_styles language from CSS to LESS (#377)

# Conflicts:
#	config/app.php
bennothommo and others added 3 commits June 28, 2022 13:12
)

This implements support for the ImageResizer within the media manager for thumbnail resizing & image cropping. This simplifies and centralizes the image resizing code within the media manager and allows for better support on readonly filesystems by relying on the ImageResizer class to process image modification requests.
@LukeTowers
Copy link
Member Author

@bennothommo can you resolve the conflict with the ViewMaker test?

bennothommo and others added 20 commits July 1, 2022 09:30
Implements fixes to some breaking changes introduced in wintercms/storm#64.
Removed a bunch of thumbnail generation related methods that are no longer required now that the ImageResizer class handles it all.
…ail-view

[WIP] 1.2 - Fix MediaManger Thumbnail View
Fixes an issue that occurs when removing the last flag from a plugin doesn't re-enable it.
…ig macros.

This fixes #578 by adding the ability to pass the CMS Controller instance to the CMS Twig Extension removing the reliance on context variables as well as making the expected "global" twig variables inside of the CMS Twig environment actually global within that environment.

Replaces #598 & #593.

Credit to @RomainMazB for the initial implementation.
@LukeTowers LukeTowers marked this pull request as ready for review July 15, 2022 06:59
@LukeTowers LukeTowers merged commit 74c3bbd into develop Jul 15, 2022
@LukeTowers LukeTowers deleted the wip/1.2 branch July 15, 2022 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance PRs that fix bugs, are translation changes or make only minor changes
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.