Shifty Plans, weekly updates, and 🔥 tip

No Release

No release today with the holiday week and most of the Laravel team traveling.

With Laravel 9 releasing in January, now is the best time to subscribe to a Shifty Plan. Especially if you are still running Laravel 7 or below. This is because both plans include the latest Laravel Shift. Currently, that is the Laravel 8.x Shift. On January 25th, it will become the Laravel 9.x Shift. By subscribing now, you may run them both with your plan.

You'll also receive a PR any time there is a Laravel release, plus an exclusive "mid-release" Shift with changes to core files.

Weekly Journal

Last week Jess and I made more tweaks to the Tailwind 3.x Shift. This is actually getting more initial use than the other Tailwind Shifts. So seems like they're growing.

We also paired for the last time in 2021. We focused on refactoring the testing layer. We're at a point where we do more snapshot testing for Shift. It's easier to make before and after snippets.

Currently, we still have to mock a lot calls in order to manipulate the I/O and use the snapshots. Our goal is to lessen this mocking, ideally only arranging the before snapshot and asserting the after.

The rest of the week I continued to live stream building Project A. I got it to a place where I could demo to Ashley on Christmas.

I plan to continue working on it to finish the core features. Then after that, it'll be up to Ashley if she would like to launch it. Otherwise, it was fun to build a Laravel application from scratch, and prove I'm a good developer. 😉

This week I'll continue refactoring Shift's testing layer. I recently contracted Saurabh Mahajan to help maintain now that Jess is working more on Shift. He's been crushing it, so I also need to spend some time merging the open PRs.

🔥 Tip

Going back to Shift's testing layer, it actually uses facades. In fact, it's all one big Shift facade. Much like Carbon, it contains dozens of methods that individual classes use to automate changes.

Using a single facade makes it super easy on implementation side. However, it has caused some issues from the testing side.

We could change the testing layer. But instead, we'll likely break out some of the aspects within Shift into additional facades. For example, a File facade.

This should allow us to mock lower-level file I/O without having to mock each of the Shift calls. This would also create a more integration (or real-world) test.

The takeaway here is not so much the testing strategies as it is to use what you know. Something I talk more about in BaseLaravel. Doing so provides familiarity and continuity. In this case, using facades allows me to test Shift the same way I test 🔥