Herqq UPnP

The HUPnP core library is stable

The first stable release of the HUPnP core library was done in 28th of March 2011. The release is about API stability. HUPnP 1.0 is not feature complete, there are optimizations, code cleansing and implementation refactoring still to be done (quite possibly bug fixes too), but the API has proven to be stable. What that means in practise is that any subsequent 1.x release exports API and ABI that are backwards compatible all the way to 1.0. This type of versioning policy is very similar with the versioning policy of Apache Portable Runtime.

In other words, this type of versioning offers source and binary compatibility amongst patch and minor versions within a major version. Because of that, the API is largely locked for change and the ABI must remain backwards compatible for the duration of a major release.

For this policy to hold any significance, I will maintain the HUPnP v1 at least until the beginning of October 2011. The maintenance will be mostly corrective, but also perfective to an extent. In addition, I may add new features if I consider the effort to be reasonable and the implementation doesn't require breaking changes to the API or ABI. Regardless, any change that would break the backwards compatibility requirement will be postponed to the next major version release.

HUPnP 2.0

The development of HUPnP continues and I already have some features planned for the next major release. However, as of March 2011 I have no real plans or schedules for HUPnP 2.0.

The HUPnPAv library is in alpha stage

HUPnPAv is currently in alpha stage. Version 0.0.1 is out and HUPnPAv is being pushed towards the first beta version 0.1.0. In practise this means that:

From the author's point of view the first beta feels close. HUPnPAv has been in development for the past year and a half and the API has undergone several major refactorings and significant design effort in general to be what it is today.

Next major steps

These are the task areas that have priority over others.

Next "minor" steps

These are the task areas that have lesser priority, but with which I try to work whenever I have time.