A while back we realised that some of the changes we needed to make for the Prosody 0.9 release were not trivial, and involved breaking some established core APIs. We have traditionally kept our trunk repository “stable” for everyday testers who aren’t worried about the occasional bug, so we decided to open up a new branch for in-progress, and potentially broken, work. This branch gained the name ‘timber’ (broken trunk) - timber also happens to be the Old English term for a building, and more appropriately the act of building.
And that’s exactly what we’ve been doing. We have revamped a bunch of APIs in Prosody, from port management to our built-in HTTP server (used for BOSH, among other things). We’ve also moved the bulk of our c2s and s2s code into modules, which makes them fully reloadable without a server restart.
Some of our important new features destined for 0.9.0 landed or improved in timber. These include our much-requested IPv6 support, as well as certificate authentication for server-to-server streams.
Of course one of the primary goals of Prosody is to remain small and simple. All the while we have continued actively looking for unused code, especially in small features which were added that never took off,or could be replaced by less code, and removing it. This means that despite all the new features we have added, our code has only grown from the previous release by around 40KB. This means we still fit comfortably on a floppy disk alongside a copy of Lua, panic over!
Since all this code has had limited testing (a brave (read: ‘crazy’) group of us have been running our servers on timber for some time). Now that it’s out in the open we expect more bugs to be uncovered, if you run into any then please let us know so we can squash them in preparation for the release.
I finally leave you with the obligatory picture of a piece of timber. Oh, and of course a cat. On a sawmill.