Serendipity Styx blog post | All posts

Serendipity Styx 2.6.0 - A Back-to-the-Roots Release

Styx 2018/4 - Long years of activity and continuously deep development have finally brought this shiny new release up to your attention.

So what is the difference?

The difference is under the hood. since Serendipity Styx does hold what was promised with Serendipity for such a long time.

The changes and fixes are uncountable. A very simple Serendipity user won't hardly ever notice, except for some obvious GUI related changes, since ‘he’ does not care of all the extended promises, which do not work for the reason of being unfinished from start or being borked by in past added tweaks or the fluent development. The one writes some articles, uploads an image, uses some categories and may even get some comments. Thats it!
Nothing to worry about, nothing to care. As you might know, a production release is designed to be very forgiving and let the users simply do their work. All seems well-matched and pleasant ready for extended future usage...

Yes, this is where the Serendipity Styx Edition comes into place. Its not there to be overconfident and say it is ever ready, since the author himself is always impressed and amazed of how much of those bugged or unfinished properties he has to face and to fix in the ongoing release cycles. But since having fixed an enormous amount of bugs and failing design patterns, Serendipity Styx is proud to say, that it has been done as much as possible, to polish and tune this up and keep the tremendous goal alive of being simple and infinite extendable together at the same time. All the past Designers of Serendipity conceptualised a system that kept to be incredibly modern and predictive, which is not that easy seeing all these fast and immense development progresses in these first two decades of the 21st century, regarding programming languages, design patterns and security.

Now, what exactly has happened since the Beta?

Serendipity Styx decided to go back to the roots. It changed the backend to where it belongs to, the default theme. While Serendipity 2.0 was developed over 2 years of heavy picking and replacing, a very lot of old XHTML and HTML4 code was replaced and therefore it was quite obvious to append the new developed Smarty Backend to the HTML5 Standard theme, which is 2k11. Since 2k11 sloughed the previously used Standard Theme Bulletproof, it tried to replace and take apart the “default” theme, which even got more and more a forgotten fallback template quarry to take out old and unfocused things. The bleeding rest. To be blunt: 2k11 tried to take over. This even got more and more relevant with the new backend and was a long going process of around 5 years in total. It was not that much in focus to think about the real relevance of default and standard. And that even more, since the Standard Theme name is held in the $serendipity['defaultTemplate'] variable, which does not really help to sharpen the difference. 😉

Back to the roots means in these terms: Default is the place of the last fallback cascade, not that much the present or absolute recommended frontend theme. It is the Serendipity Theme Basement, which is the right place to put a backend, since everything ends up here. A Standard Theme by comparison is just a current set, used and recommended standard for the weblog frontend. All items that are relevant to fall back, like remaining images for example and not particularly bound to the standard, are found in “default”.

One benefit of this change - apart from the simplification of understanding - is to be able now to simply force a standard theme change, without having to deal with the backend and fallback. That’s what it’s for.

What else?

A lot of deep inspection went into debugging the workflow between the core and some main external plugins logic and the Smarty template compiler. Since Smarty has an error suppressing handler it does not yell about unset or false variables, as long as you do ask the right conditional question. Answers may are others than you expect, but since being suppressed are not always that relevant to the conditional output. We have lived with it for years. Serendipity Styx did try to find all these unsharp needles and fixed them in the release themes. This is why you are strongly recommended to start a new theme copy, if already working with a copy template. For sure all additional themes over Serendipity-Origin repositories have not been touched for this relation!

Serendipity Styx would really like to take them over into this repositories account, to get rid of remaining Smarty2 API usage, forcing the core to hold backward compatible methods and fix the most prominent of these mentioned “bugs” above. But sadly this all takes too much of extremely valuable free memory GitHub space, until someone sponsors Styx with a real paid unlimited account and even something more like being a Patreon.

The Serendipity Styx Book [de] and the Serendipity Styx site documentary have been updated to already reflect some or most of these changes; Also the upgrade guide in the [en] documentary installation notes was partly reworked. It all is an ongoing process and I hope I haven’t missed that much to rewrite.

The Spartacus plugin was touched to get rid of the custom Styx pointer and ZARATHUSTRA (a local plugin version synchronizer) was added to the upgrade tasks. For all these changes you need to allow the upgrade tasks to run automatically for you.

And of course, Serendipity Styx is deeply tested with the latest PHP 7.2 release.

As a last-minute bonbon the maintenance section got extended with a so called "Theme Manager Clearance Spot". This will help you to quickly get rid of any private or additional themes in your themes directory, without having to start FTP once. Naturally benefits upgraders only.


Have fun and be productive with Serendipity Styx!
Ian Styx

As ever, read the ChangeLog or even the commit history for more. See download

What next?