Publisher Going Forward

July 24, 2013

As many of you know ExpressionEngine 2.7 is on the horizon. What that means is there will be many people still using the 2.5 branch, a few brave people using 2.6 and some even braver people jumping to 2.7. It also means that there can effectivley be 3 different relationship fieldtypes in play depending on which version you're using (old relationship field, new relationship field, and Playa).

ExpressionEngine 2.6 also introduced an entirely refactored channel:entries tag parser which broke Publisher. Given the advancements that EE has made in the last two versions I need to draw the line somewhere in which versions I support. I can't actively test on 2.5, 2.6, and 2.7 and support 3 different relationship fields. Thats just nutty. So going forward, once EE 2.7 is released I will no longer be supporting Publisher in anything less than EE 2.6. You're free to use it in 2.5.x, but if you submit a support ticket and I find out you're using 2.5.x, I'll have to ask you to upgrade to 2.6 or 2.7.

I've spent some time refactoring how Publisher loads translated and draft data on the front-end (in your templates). I'm expecting to release these changes in 1.0.4. This means that the Gist file containing the hack to 2.6 won't be necessary anymore. EllisLab has graciously added a new hook to EE 2.7, but after a bit of exploration I realized Publisher doesn't need the hook for front-end usage. What this means is the Publisher Mode setting of Production or Development will probably go away, and you'll actually see less queries being performed on the front-end. Since this is a fairly significant change I'm doing my best to test the changes before pushing them out, which brings me to the next topic...

I've been meaning to create Selenium tests for a long time now for Publisher, but honestly my time was spent in a reactionary mode to fix bugs and add new features that people were requestion. Last night I finally created the first set of tests. Over the last few months I've been sent full copies of sites from customers to help fix bugs. I now have 4 copies of full site builds using Publisher, each unique in its own way in how it uses translated urls, Matrix fields, Playa, etc etc. This provides a wide range of coverage for me to test with. The tests are very basic assertions of the proper text and links exist on the page given the current language or status. Its crude, but it works. What this means is I'll be able to do a broad sweep on 4 different sites prior to every Publisher release to ensure that functionality does not break and the releases will be more stable and I can feel more confident in the changes, such as when I change how the front-end data is loaded.

Next up on the feature request list is to tackle advanced notification features. Translated urls and complicated notification email rules seem to be the most requested features. With this in mind I'll be writing and releasing an accompanying add-on for advanced notifcation features. This isn't something I want to add to Publisher's core, so it'll be a separate extension for those who need more robust rules.