Huh. - finally OK?


I've probably been one of the more vocal people against the 5.6 branch. I see so many things that are awesome about it, but there have been a lot of things that kept me from using it in production. I think maybe is actually ready.

Still, I'm only trying it on my personal site, not on anything production yet. There are a lot of great new features, but I haven't had enough time to dig into it and test everything.

The Environment

The 5.6 branch of concrete5 is for sure way better for you as a programmer. I've been dying to use some of the new features, like overriding the environment or creating new classes and objects that inherit seamlessly from the core. I've done a bit of test coding, and a new page list block or whatever only takes a few lines of code and works better.

The thing is, it still came with a lot of bugs. I don't think I can even go into all of them, but there were a lot. Some were 100% dealbreakers for us if we wanted to upgrade our white label at Hutman. We actually lock out a lot of stuff from the CMS for our clients, but it's actually a good thing. They can't go and just install anything and everything, most don't even know that there is a marketplace. We mostly work with other shops and freelance designers - they send us the comps, we make the site, then we usually host it.

Our hosting is a bit different, too. You get some hosting from a place like Dreamhost and you have a really cool control panel, but pretty much no support for your code. We do full support for everything. When something goes wrong, it's not like 'oh, that's something you installed, not part of our system' it's like 'oh, ok, we are taking care of everything from the server config to the code that runs your website.' 

So we actually end up a lot of times not updating to the latest and greatest for our sites. They're not normal c5 installs, they're highly custom. They want __x__ add on and we have to change 30% of the code in order to make it work exactly how the designers want it to. A lot of custom packages, a lot of really integrated themes. For the marketplace, you do things to make it as customizable as possible. We do the opposite. The tinymce editor has all the fonts included, and is usually locked down to a unique set of buttons. Then tied into the dashboard and all custom blocks to match the theme.

A lot of that is kind of default in 5.6, but we needed to manually change the core in earlier versions.

But 5.6 just didn't 'work' in a lot of ways. The biggest thing that I can think of was installing packages in I actually tried to update some of our packages to match the new version, and couldn't do it. There were errors where once you installed more than one package that used blocks. It was like "WTF? I know I haven't had time to work on new releases in a bit, but how on earth can a problem this big get through?!?!?! How can I possibly trust the core if something that big was missed?"

Maybe that's a bit harsh, but that's how my brain works.

Experimenting - that's all I ever do

This website has always been a work in progress, constantly changing. It goes back at least as far as 2004 and maybe a bit further. Things like concrete5 were all I wanted to make, long before it was even remotely possible. I really wish I had some of my files from back then, but still, stuff like this makes me realize I was thinking about how to handle media long, long ago. But still, it was pretty damn crazy. Looking back at it, I see so many things about myself revealed. Kind of why I don't look back.

But ever since I've been writing HTML, I've been doing stuff on this site. I think a redirected blogger for awhile, then simply a blogroll, then self-hosted wordpress, then concrete5... Always changing what was here, and often just deleting everything all at once. I often wish that I'd kept working copies, but so much of that content is gone.

Once I started this site as a concrete5 site and started actively trying to use it to promote myself as a developer, I had all sorts of fun things to do.

Problem is, that means that there's a lot of hacks and tweaks from years and years ago. And back when the PRB was starting out, this site also became a testing ground for a lot of add ons. Without licenses, so no upgrades or anything. And the whole theme system was all sorts of crazy.

So, um, yeah, I don't know exactly what version this site started out at. I know what version I accidentally used the auto updater - that was  Everything has been slowly upgrading since before that. And upgrading? Often several days of working to make sure everything was OK.

Ok, this could break everything, but let's try

I created a throwaway site on my local desktop this afternoon to do the upgrade. After it was working with exactly the same data as the live site, I started going through and getting rid of all the stuff that wasn't actually being used. That actually meant doing a lot of work looking at all the existing block types, then checking the block table to see if it was used at all. If not, delete the package. If it was, check the collection version table for the bID, and check the page before delete, or abort. 

It took a few hours, but I removed everything that wasn't used on the site and released it from the project page. Went from 15 updates that actually wouldn't install to 1. And that one was for Traffic and Statistics, and it wouldn't install with the latest version.

After that, it took a bit to figure out the update. I didn't want to go back to /concrete actually being the core, I simply wanted to make the core point at a new folder in /updates, then hit the upgrade script. I messed that up a bit, I thought that the folder was supposed to have the data from the /concrete folder directly below it. But it needed to be like /concrete5.6.1.2/concrete/all_the_crap

After I got that, I could try the upgrade. There were a few changes, but it all seemed to go OK. I didn't really see anything that broke overall. 

There were a lot of problems with the cache, though. I think that everything is working right, but I don't know that it is for everyone. I had several pages where I looked at them on phone and they showed the desktop version. A few flushes and it seems that it's all working right, but I honestly don't know 100%. 

It was about 4 hours to do everything, but that was actually a lot less than on some 5.4 to 5.5 sites. 

The Result?

And it was a pretty amazing difference in speed. It's admittedly a site that is not really optimized in any way,shape or form, but page requests were loaded in half the time. There were things where checking it on the phone served up the desktop version, but not a lot. I did disable the environment cache.

I think it might still be another point release before we upgrade our main customer base. But it's getting close to where we can actually offer it. It should actually speed up production on new sites. 

I'll see how things go with this experimental site, hopefully it all is solid. I really want to be able to start using all the new functionality. 

I also need to do a lot of updates to this site itself. That was one of the biggest reasons to upgrade - I want to totally redefine how content is saved, displayed and sorted on this site. 

There are two more days left this weekend. Maybe I'll be done by Monday.