digip.org blog

Jansson is two years old

By Petri Lehtinen on 2011-08-25

Today is Jansson's birthday. The first release, Jansson 1.0, was released on August 25, 2009. At that time, I thought the library was substantially ready, and there would be only few or no new features to be added anymore. I was wrong.

Because I thought that the library was ready and mature, I was bold and gave it the version number 1.0. In open source software, it's quite common to have 0.x versions for years and years. The safety of 0.x versions lies in the illusion that you can break backwards compatibility in new versions. In my opinion it's like pulling the carpet from under the users' feet.

Quite soon it turned out that Jansson wasn't so mature and featureful after all. On Jansson's first birthday, version 1.3 had been out for two months and there were plenty of new features compared to 1.0. But there were a few problems that bugged me, and fixing them was not possible without breaking backwards compatibility.

It took a long time to make, but version 2.0 was finally released on February 28, 2011. It was the first, and hopefully last, backwards incompatible version, fixing design mistakes in the 1.x series. For the first time, I also tried to prepare for the future; the decoding functions got an extra, unused flags parameter for future needs. The preparing paid off, as version 2.1 already uses the new parameter, and we didn't need another backwards incompatible change to make it happen.

What's most remarkable, though, is that there are people out there who actually use Jansson to make awesome things happen! The library started out as a project to replace existing JSON libraries for C, just because none of them was appropriate for my needs. As time passed, it turned out that other people had similar needs, and that was the driving force for me to fix bugs, add new features, review patches, etc. Thank you everyone, without you there wouldn't be Jansson as we know it!

To celebrate the birthday, I was planning to release version 2.2 today. However, I've been extremely busy organizing PyCon Finland 2011 for the last weeks and months. I really hope to get 2.2 out soon.