Thermostat 1.0 released!

Here we are!

After starting a bit more that two years and more than one hundred thousands lines of code after, we finally released Thermostat 1.0, codenamed “The Snowman”.

We do always have code names for releases, they are usually based on books, either titles or characters or situations, even when they are not directly based on a book we had read, there’s usually something out there that wrote about our release anyway 🙂

If you’re interested in the Snowman puzzle, I suggest you to read the nice original announcement from Jon, right here.

Thermostat has an awesome set of features, and with 1.0 we’re officially freezing (hint hint: “The Snowman”) the public API for plugins. From now on, the 1.0 tree will be dedicated to long term maintenance and stabilisation, and occasionally backporting plugins as appropriate from the main development tree, which is now 1.1.0:

Thermostat 1.0 is the result of long hours of work, a great team, great upper management and a amazing Community that pushed and sustained us in the right way. I can tell you, it’s not easy to get something like this and is all too easy to miss important aspects, so I’m very proud we actually released a good 1.0. Of course, there’s always room for improvements, so please, help us making this a better, more stable release, help us improving it! We’re open for suggestions, we want to hear your experience and what you are searching from a monitoring platform.

I specifically say monitoring platform because Thermostat is long gone as a “simple” (ehm…) monitoring tool. We decided that it really does make sense to make possible for people to write their tool on top of our code, which is not only a very good way to extend our program in ways we didn’t think of, but it’s also important for our own sanity when we do extend it 🙂

This is why the plugin API is so important for us. Thermostat itself is all based on plugins, in fact. And I really mean everything, for example the various filters (like living vs non livig vms, or the search fields), or even the side panel with the host accordion, this is all plugins (even if some of them still “internal” for a reason or another).

And it looks good too 🙂 we did lots of fine tuning and improvements in Swing, with customs components. I believe that one of the most exciting part at least for me was to actually force Swing to behave like a modern toolkit, which is an experience I will likely put in a book at some point…

It has been a great, fun and challenging journey so far, and I really want to thank everyone who contributed to Thermostat across the years, the Thermostat team as a whole including our Red Hat Brno team, Pavel, Jiri and Jana, the performance team at Red Hat, especially Nathans and Lukas, all the occasional contributors who just stopped by and yelled regarding some bugs, Giovanni, who helped us writing the plugin descriptor infrastructure, which is what really let you write and plug external components into the framework, and everyone else who contributed.

A special thanks, though, the most special one, goes to my wife, since she really supported me over those insanely long days!

Now, on for a new adventure, there’s still so much work to do, and it’s going to be equally fun, I can assure you!