Laravel 8.53, weekly updates, and 🔥 tip

Laravel 8.53

Lots of features this week bringing Laravel to 8.53.0.

Here are the highlights:

  • Prevent assertStatus invalid JSON exception in #38192
  • Add immutable date and datetime casts in #38199
  • Add queue:monitor command in #38168
  • Add twiceDailyAt schedule frequency in #38174
  • Added accepted_if validation rule in #38210

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

Last week I completed the remaining Human Shifts. Jess and I also fixed a few of the outstanding issues for the Workbench desktop app.

This included a permissions issue on Linux and some edge cases where the excluded_path configuration was not honored by PHP tasks.

The remaining Workbench issues relate to dependency updates. This is actually an issue in the weekly updates for Shift as well. There's an extra layer of complexity when bumping package versions - the PHP version also needs to be considered.

So we're working to track the PHP version required by each package and compare that with PHP version used by the project when bumping constraints. Easy to say, hard to do. Writing this type of code makes me respect tools like Composer even more.

If there's any time left later this week, I plan to give some attention to subscriptions. Notably the ability to set a billing email address and add Composer auth tokens from the UI, instead of an auth.json to your project.

🔥 Tip

The new queue:monitor command this week is a good example of how useful commands can be. In fact, over the years, I have built all sorts of commands for Shift. These make providing day-to-day support much easier.

I namespace these under shift so they're nice and easily listed by artisan:

shift
shift:add-package Begin tracking version information for a package
shift:bounced Unsubscribe user and flag account
shift:bump-package Run package updater to open PR for latest Laravel version
shift:cdt Create Docker order for user who already paid
shift:check-releases Checks for new releases of Laravel and runs automation
shift:cwl Create a Workbench license for user
shift:dump-command Output the executable command to run a Shift
shift:dump-subscriber Output account information for a Shifty Plan, including orders
shift:dump-user Output user account information, optionally including orders
shift:email-invalid-repos Notify Shifty Plan subscribers of invalid repos
shift:log Output log for Shift
shift:merge-accounts Merge two user accounts into a single account
shift:opt-out Opt user out of Shift emails
shift:rdt Reset the token for a Docker Shift
shift:refresh-token Refresh Bitbucket token for Shift
shift:refund Issue a refund for a Shift
shift:remove-user Remove a user account and associated data
shift:reset Reset a Shift so it may be rerun
shift:run Run a Shift by number
shift:run-automation Run automation for a specific tag (ex: v7.19.1)
shift:sync-repositories Dispatch jobs to update version details for subscriber repositories
shift:track-payment Add payment transaction details to an order
shift:update-packages Update tracked package versions
shift:uwr Upload Workbench release notes for distribution

I also built webhooks for some of these commands which allow me to trigger them remotely from my phone (via SMS). Just one of the ways I provide super snappy support. 🔥