It’s been 4 weeks since the release of Pure Web Brilliant’s framework for WordPress, and people have started to ask where the rest of the plug-ins are?
The answer is fairly simple: they’re all being completely re-written.
When pulling the plug-ins together, it did seem like it would be a somewhat fun and relatively easy project – which just goes to show how wrong one man can be. My hopes of having all the code released before WPUK in July now seems to be a bit of a pipe-dream.
Knife and Fork
The first issue is straight forward: We’ve been using versions of these bits of code for years, but we’ve not kept a central repository of “control” plug-ins. For the most part we re-write/edit/hack/fork/comment-out and my favourite “just made it work” on a site per site basis.
It’s meant that pulling together the code into a single format has been a bit of a nightmare; but oddly a fun nightmare in a geeky sort of way. Thankfully, we’ve been good at commenting, and it’s actually funny to see some of the what we’ve writtenin the past (it’s like a time capsule).
So far my favourite comment is:
/* WP2.7.1: Putting this back in. Presumably going to have to take it out for 2.7.2 or 2.8 once somene makes up their mind about bbPress. Ha, who am I kidding, that would require leadership! */
/* WP2.7.2: Taken back out to make it work with bbPress. Total Clusterfuck. */
Once I’d managed to pull together testable bits of code, then came the daunting task of making them ready for the WP repository.
One of the things I really dislike is how difficult it is to read some other plug-ins. I’ve always strived for human readbale code, obvious variable and function names, and a simple process flow. I think this is especially important for Open Source Software, as thats how people learn.
It took me almost a week to get the 3 largest plug-ins to a standard where I thought they were “release ready” – and thats without adding 1 new line of code.
WP’s repository itself is no walk in the park, and multiple tweaks , edits, and reuploads were needed in the MarkDown, tagging, and readme file in order to get it good to go. Thats a good thing really, but it does take a larger amount of time that people imagine – you can’t just throw up code there!!
Then last week we hit an issue.
I was hunting in our local repository for a rather nifty function that I knew we’d written last year, only to find that it was under a non-GPL compatible licence.
Worse, it was deployed on a site for a client who’d turned down our request to “buy-back” the licence (they became very anti-GPL and anti-WordPress after the WooCommerce debacle).
Of course we could just release it anyway, given that the client wouldn’t know; and if I’m honest we discussed that for a good hour or so before accepting that it just didn’t “feel” right to do so.
The real issue that came out of the discussion was that we also felt that we couldn’t just “rewrite it, line by line”. That would still break the copyright licence our client insisted on using.
Unsure of how to continue with this, I paused the project.
All by my self; just wanna be…
Last weekend I visited the Orkney Islands in the north of Scotland to enjoy 24 hour sunlight, and 4 days of no phone signal nor internet.
I sat down to write some code to solve a transient/memchache problem that I’ve been secretly mulling over during boring meetings for the past wee while (I do this secretly as I’m a poor developer and my team continue to let me know it!!).
On returning to Edinburgh on Tuesday I showed off my “1337” coding skills, to be met with a resounding: “we already have a function that does that”. A quick 3 minutes in the repository showed that we had a similar function, that completed the same task in a different way, that wasn’t under a GPL-compatible licence, but my code was written totally independantly of that class.
Change of Plans
The new plan for the project “to release our WP plug-ins” is different, and for the best. I’m going to write all the code myself, and I’m not going to refer to our repository or any code that we’ve written before.
I’m setting up a Chinese Wall, and if some of my classes/functions happen to look like or work in a simlar method to our existing non-GPL-compatible code, well I can hand-on-heart say that it’s just co-incidence and moreover is down to just good coding practices in the agency.
I love it when a plan comes together
The following plug-ins are “completed” as far as I’m concerned but are needing to go through thorough testing and release preperation before being WP repository ready. I’m confident that all of these will be availible near the end of the month, and certainly prior to WPUK in mid-july.
**Completed Framework Extentions:**
- Meta Control
- Browser Control
- Mobile Control
- Debug Control
**Completed Framework plug-ins:**
- Open Graph
- Redefined Log-in
- EU Cookie Cutter
- URL not HTML
- CSS3 for CSS2 browsers
Until then, I’d just like to say a large thank you to those who have been supportive and emailing me asking for updates.