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

Laravel 10.x Shift #119

Merged
merged 19 commits into from
Oct 6, 2024
Merged

Laravel 10.x Shift #119

merged 19 commits into from
Oct 6, 2024

Conversation

simonostendorf
Copy link
Contributor

This pull request includes the changes for upgrading to Laravel 10.x. Feel free to commit any additional changes to the shift-130321 branch.

Before merging, you need to:

  • Checkout the shift-130321 branch
  • Review all pull request comments for additional changes
  • Run composer update (if the scripts fail, try with --no-scripts)
  • Clear any config, route, or view cache
  • Thoroughly test your application (no tests?, no CI?)

If you need help with your upgrade, check out the Human Shifts.

@simonostendorf
Copy link
Contributor Author

ℹ️ Starting with Laravel 10, the lang folder is no longer included in a default Laravel application. Laravel now recursively merges any customizations with framework defaults.

Shift streamlined your language files by removing them since they did not contain any customizations. If you wish to keep the full set of language, Shift recommends running artisan config:publish --all --force to get the latest configuration files from Laravel 11, then reapplying the customizations Shift streamlined.

@simonostendorf
Copy link
Contributor Author

ℹ️ Laravel added the VITE_APP_NAME environment variable to allow you to customize your application name in frontend components. By default, this uses the value from the APP_NAME environment variable.

Shift added this to your .env files, but you will need to update your frontend components to use this new variable. You may reference the original Breeze PR for examples.

@simonostendorf
Copy link
Contributor Author

⚠️ Shift upgraded your configuration files by defaulting them and merging your true customizations. These include values which are not changeable through core ENV variables.

You should review this commit for additional customizations or opportunities to use new ENV variables. If you have a lot of customizations, you may undo this commit with git revert c2f0d61a and make the config file changes manually.

@simonostendorf
Copy link
Contributor Author

ℹ️ Laravel 10 now verifies hashed values were created by the same hashing algorithm. If your application has hashed values created by different hashing algorithms, you may set the verify option to false in your hashing configuration. For more details, you may review the original PR.

@simonostendorf
Copy link
Contributor Author

ℹ️ Shift updated your dependencies for Laravel 10. While many of the popular packages are reviewed, you may have to update additional packages in order for your application to be compatible with Laravel 10. Watch dealing with dependencies for tips on handling any Composer issues.

@simonostendorf
Copy link
Contributor Author

⚠️ Shift detected you are running Laravel Sail. If you have not customized your stack, you should run php artisan sail:install to regenerate the latest docker-compose.yml. Otherwise, Shift attempted to update Sail for PHP 8.1. However, you should review your docker-compose.yml to ensure your stack is running PHP 8.1 or higher.

@simonostendorf
Copy link
Contributor Author

ℹ️ Laravel renamed the password_resets table to password_reset_tokens. While an optional change, Shift detected you have a migration for the original table and created a migration to rename the table. You should check for any additional references to the password_resets table and run php artisan migrate to complete your upgrade.

@simonostendorf
Copy link
Contributor Author

ℹ️ Laravel 10 added PHP type hints to all user-land code included in a new Laravel application. In an effort to modernize your code, Shift added type hints to any method which is used by Laravel.

@simonostendorf
Copy link
Contributor Author

ℹ️ Now with type hints in your code, defining types within PHP DocBlocks is redundant. Laravel has removed all of the @param and @return tags from its DocBlocks where types are defined with PHP. Similarly, Shift removed these tags from any DocBlock where the code now has equivalent type hints.

@simonostendorf
Copy link
Contributor Author

ℹ️ Shift understands developers have different preferences when it comes to type hints. All of Shift's automation is done in nice, atomic commits. This makes it easier to undo any of the changes Shift makes.

If you wish to undo the changes relating to type hints, you may run:

  • git revert 7ecc349 to revert the DocBlock changes.
  • git revert bc76d84 to revert the type hints added from DocBlocks.
  • git revert 3d72df6 to revert the type hints added for Laravel 10.

@simonostendorf
Copy link
Contributor Author

ℹ️ All of the underlying Symfony components used by Laravel have been upgraded to Symfony 6.2. Shift detected references to Symfony classes within your application. These are most likely type hints and can safely be ignored. If you are using Symfony classes directly or experience issues relating to Symfony, you should review the Symfony change log for any additional changes.

@simonostendorf
Copy link
Contributor Author

⚠️ Laravel 10 requires Composer 2.2 or higher. You should verify the Composer version in your environments by running composer --version to ensure it meets this new requirement. If necessary, run composer self-update to update Composer.

@simonostendorf
Copy link
Contributor Author

⚠️ Laravel 10 requires PHP 8.1 or higher. You should verify the PHP version in your environments to ensure it meets this new requirement.

@simonostendorf
Copy link
Contributor Author

⚠️ Laravel 10. has reached end of life. It no longer receives bug fixes . Shift recommends continuing to upgrade to the latest version (Laravel 11.x).

@simonostendorf
Copy link
Contributor Author

simonostendorf commented Oct 6, 2024

❌ PHP syntax errors were detected after running your Shift. Often these are simply differences between the PHP version on the Shift server (8.2) and your project. Occasionally they are misplaced lines or duplicate import statements.

You may quickly check the PHP syntax locally by running php -l on the following files:

  • app/Http/Controllers/PersonController.php

@jpih
Copy link
Contributor

jpih commented Oct 6, 2024

❌ PHP syntax errors were detected after running your Shift. Often these are simply differences between the PHP version on the Shift server (8.2) and your project. Occasionally they are misplaced lines or duplicate import statements.

You may quickly check the PHP syntax locally by running php -l on the following files:

  • app/Http/Controllers/PersonController.php

Fixed. Happened duo to automatically added (by Shift) type hint

@jpih jpih requested review from jpih and removed request for jpih October 6, 2024 15:49
@simonostendorf simonostendorf added this to the 3.0.0 milestone Oct 6, 2024
This was linked to issues Oct 6, 2024
@simonostendorf simonostendorf added breaking-change Significant changes in the project dependencies Pull requests that update a dependency file labels Oct 6, 2024
@simonostendorf simonostendorf merged commit 8a41d52 into dev Oct 6, 2024
1 check passed
@simonostendorf simonostendorf deleted the shift-130321 branch October 6, 2024 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change Significant changes in the project dependencies Pull requests that update a dependency file priority/high
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update backend dependencies Update frontend dependencies
3 participants