Eating your own dog food – Nextcellent fixes


Eating your own dog food

Although we tried to make Nextcellent bug free, this plugin is huge and a perfect example where we need to follow several steps to assure everything goes smoothly. One single misstep leads to defects and delivering an unintended buggy release.

We are dealing with several forces. One is the continuous refactoring to improve the legacy code. The plugin seems to me like a painting made for several artists, each one with its own personal style, where brilliant programming is coexisting with crappy one, side by side. And that’s what we want to correct. Sometime everything is about tiny adjustments. Sometimes it implies big decision, chop a lot of code, and plant new one instead.

Another force is to make the code stronger and safer. This is implying to review the code over and over again, make unit tests to assure we didn’t break anything and see what is the best way to make it useful, understandable and commented, to put lights in the dark corners.

And also important, we’re trying to expand it and making it backward compatible. It is like to live in a house while we’re rebuilding at the same time.

I have installed Nextcellent in this site, and for some reason I skipped to install the last release, busy with last minute changes. To my surprise, when I installed I got with a runtime error which locked me the admin panel:

Parse error: syntax error, unexpected T_FUNCTION in /home/wpgetrea/public_html/wp-content/plugins/nextcellent-gallery-nextgen-legacy/widgets/class-ngg-slideshow-widget.php on line 174

In the forum I’ve checked the problem should happen on PHP 5.2 installation. However, the plugin broke this site with a PHP 5.4 installation, so that rule didn’t apply.

(Users affected with this bug, should have upload version manually to fix the problem)

Another fix included in the release was a AJAX pagination problem which it was disabled. That pointed out that we need another unit test to make sure this won’t happen again.

No Comments

Leave a Reply

Your email address will not be published Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>