Laravel 8.56, weekly updates, and 🔥 tip

Laravel 8.56

More new features this week which brings Laravel to 8.56.0. Here are the highlights:

  • Minor improvements to new validation assertions in #38422
  • Blade component slot attributes in #38372
  • Run event:clear on optimize:clear in a61b24c2
  • Add firstOrFail to Collections in #38420
  • Add default rules in conditional rules in #38450
  • Add fullUrlWithoutQuery to Request in #38482
  • Add --implicit (and -i) option to make:rule in #38480
  • Make getCookie public so it can be directly used in tests in #38524

You may review the full branch diff on GitHub for a complete list of changes.

This version bump and update is automated for subscribers to a Shifty Plan. If you don't have one of those, be sure to bump your constraint and run composer update to get the latest features.

Weekly Journal

I spent most of last week patching bugs for Shift. There was quite a backlog of user reported edge cases which had piled up while we were working on the Workbench.

Jess and I paired up Thursday to start a few, and I completed a few more over the weekend. We're about halfway through. I hope to complete the rest later this week.

Of course this doesn't mean that Shift is bug free. Nonetheless, these patches continue to increase the amount of automated changes by Shift - moving things closer to potentially 100% upgraded for most applications.

I also merged a PR from Jess to automatically email invoices. You may now add an email address for Invoice Notifications within the Billing section. If set, the recipient will receive an email with an attached invoice for any Shift purchases or subscription charges. Nice little feature to help with record keeping or appease your Accounting team.

We also merged a long promised feature for adding Composer authentication for plan repositories. This was something you may have worked around by either granting read access to Shift or adding an auth.json file to your project.

Now you may set this configuration directly through the dashboard. Doing so is more akin to the way other community tools do this like Forge and Chipper CI.

This week I'm working mostly on the PHPUnit to Pest Converter. I am live-streaming its development each day this week. Jess and I are also recording our pairing sessions where we work on it together.

I hope to reach an MVP by Friday, and with any luck maybe release an alpha version before Laracon next week.

🔥 Tip

In working through the Shift test suite, I realized I had a few tests which used the @covers annotation. This is something I began using when working on Confident Laravel. It provides a nice, clickable reference to the implementation.

However, I have since learned that @covers may have implications when using some test coverage tools. As such, I have gone back to simply using the @see annotation.

It still serves as a nice reference to the implementation and click-thru in most IDEs (e.g. PHPStorm):

1/**
2 * @see \Shift\Tasks\Php\PestConverter\UnwrapClass
3 */
4class UnwrapClassTest extends TestCase
5{
6 // ...
7}