I’ve just upgraded this blog to Jekyll 3. There were quite a few hurdles along the way, but all should be ok now.

I’ve found three different types of transition issues (it is cool to look at these in a project I do not upgrade on a daily basis like Plasma and the rest of the KDE software).

Type 1: Issues that break the build

API for plugins has changed. This means that plugins I wrote for this blog stopped working (some of them).

This was the most painful one to fix, since I had to investigate the changes in the plugin system in a programming language that I really do not like (Jekyll is written in ruby).

Type 2: Sneaky behaviour changes

The second type of issues were small changes in behaviour like, say, changing how the permalinks are generated, changing a few things that were lowercase-only to uppercase and similar.

These issues were more annoying than the type 1. With type 1, you know where you are at - your build is broken, and you need to fix it.

The type 2 you can discover only by actually checking whether the pages are generated properly or not (in the end, I diffed the whole generated site to see what were the changes).

Type 3: Ruby GSL

The third issue was not really because of Jekyll upgrade, but it did appear at the same time.

Ruby GSL library relies on an ancient version of GNU Scientific Library which even Debian does not use anymore (Debian testing). And while building the site with jekyll, you get absolutely no information that your setup is broken. The build does not crash because of a missing library, because of incompatible library symbols, it just keeps building.

And keeps building.

And building.

At some point you realize that even ruby is not that slow and that something is wrong…

Conclusion

While it is nice to get speed improvements and all, we should pay attention not to break things.

In Plasma, we do create breakages in major releases because sometimes transitioning the configuration to the new architecture is hard, or impossible.

I just hope we will not have a good reason to do it again anytime soon. :)


You can support my work on , or you can get my book Functional Programming in C++ at if you're into that sort of thing.