I'm currently in the process of upgrading a Laravel 5.2 project (yes, I know, I know...) to the latest Laravel version (9 at the time of writing). This project uses Caffeinated/Modules to structure the code - currently on version 3.
On checking the compatibilities using Laravel Shift, it appears there is no version of Caffeinated/Modules compatible with Laravel 9. In addition, on checking the Modules project on GitHub, no updates have been made to it in the past year - which is slightly worrying.
So I'm wondering if this plugin is effectively obsolete? (or soon-to-be?)
Does anyone know if there are any plans to keep it going in the future? Or is it worth ditching it now?
(For background, I tried a single "shift" from 5.2 to 5.3, and so far have been unable to get the Module routes to work. I wonder if the Modules could be the biggest headache in the upgrade process).
Any insider knowledge/advice/experience gratefully received!
Related
A long long time ago, I've developed a concrete5 package for concrete5 <= 5.6 for a small non-profit organization. Now, because it has never been upgraded, there are some issues that I can't easily fix, related to the old PHP version. Therefore, I'd like to migrate the web site to a new installation of concrete5 version 8. However, for a fresh install of the latest concrete5, of course my old plugin no longer works. What are the steps to update a legacy concrete5 package to work under the newer concrete5 versions? I couldn't find any info or guides online unfortunately. I have looked at the new documentation on how to develop a package for concrete5 8, but found it very scant. I've changed the namespace of my controller for example, but this is not enough to let the package function. Any insights would be greatly appreciated!
Edit: the code is here
The folder and file structure is mostly the same. YOu have to use namespacing in your classes now. Package controllers have changed a bit in what they extend I think. BLocks are mostly the same. Using JS and CSS assets still works the old way if you prefer but there's a new and better way with asset management.
Feel free to contact me by PM on the concrete5 website my username is mnakalay. There you can tell me more about your package and what it contains (blocks, attributes...) and I can give you a few pointers
So I just took over a laravel 5.2 based project with some dependency hell.
The backend is build on a smarch/watchtower package which has been abandoned and laravel 5.3 is the highest version it supports.
tsawler/laravel-filemanager is one more abandoned package.
Now I would like to update the whole project to the latest version of laravel to enjoy the new features, bug fixes and security patches and add the possibility to use other packages.
What are the best practices in such a situation?
Should I go with hijacking the abandoned packages one at a time and update them,
find similar packages with strong community support and replace the abandoned ones,
build the whole project from the start on a fresh copy of laravel 6
or accept the truth and continue on the old version?
any other suggestions?
Links to abandoned packages:
smarch/watchtower
tsawler/laravel-filemanager
Typically, I use packages from vendors that I know will be kept updated (such as Spatie packages). In place of Watchtower, you could use [laravel-permission] https://github.com/spatie/laravel-permission. However, tsawler/laravel-filemanager did install on Laravel v6.x. Though it says use https://github.com/UniSharp/laravel-filemanager so I'd install that instead.
From there you can upgrade from 5.2 to 6.x yourself or have a service like Laravel Shift do it for you. I create a new laravel instance and diff the directories to see what files changed. Also, make sure you read the upgrade guide: https://laravel.com/docs/6.x/upgrade. This might help as well: https://laracasts.com/discuss/channels/laravel/laravel-52-to-6?page=1
The next Laravel release is 5.5 which arrives this July. Now let's say I make a policy where I'll upgrade my web app every year in July/August to the latest version.
During that year of running the web app what should I do to keep it up to date with security fixes and bug fixes?
For example let's say I deploy on version 5.5.2 and by December there's a 5.5.8 what's the best way to keep the minor changes stay up to date without jeopardising the web apps availability?
I asusume you would need something to run commands like composer update Every so often etc. But what would the exact commands be and can they be run using Laravels scheduled so it is cross platform - if so, how?
Thanks!
I will not run a composer update command as a cronjob. Packages can change and that can deprecate functions or change the way how they works: what will you do in this situation? Laravel itself has a great documentation (ex https://laravel.com/docs/5.4/upgrade) showing what will brake down of you upgrade from one version to another one.
The better approach is having a development branch where test the upgrade, fix pieces of code and then deploy everything online. Just in this way you will be comfortable not to have any surprise...
How does one downgrade a Laravel 5 project to Laravel 4? If it's not that hard, it might work better for my team. Any changes in Eloquent, Controllers, views, and user logins would be the need-to-know. The primary reason we are looking to downgrade is host PHP support. 5.3/5.4 are what we'd need, so whichever version of 4 we use would need to go that far back - I guess I'm also looking for advice on which version of 4 would be good.
I am trying to update my project written in Symfony 2.0 into Symfony 2.2.
Moving source codes into 2.2 project ended with config.yml and security.yml incompatibiliy.
Is there way how to properly migrate Symfony 2.0 project into Symfony 2.2?
It better to wait until Symfony 2.3 before migrating. It will be released somewhere in May. It's the first LTS (Long Time Support) release, meaning that it's maintained for three years. So: You don't have to worry about BC breaks for 3 years!
For the migrating of Symfony 2.0 to 2.3: There is nothing you can do. Read the UPGRADE-*.md files (which are stored in the root of the symfony/symfony package) and fix anything that is in their in your code. Every BC break that's important for normal users will be put in those UPGRADE files.
If you can't solve it after the fixing everything in the UPGRADE files, you should take a look at the CHANGELOG.md files in the root of the package (e.g. the symfony/security package). Try to find something that is changed and cause your code to break.
Finally, if you don't get your script working, there are a lot of active Symfony2 users who are waiting to help you. Take a look at the community page and find your place to ask questions.