A comment on the v1.1 SDK by Mike Dillamore over at OPC Programmer's Connection prompted me to think about the differences between developing community software and developing commercial software. When developing commercial software the development team works privately on the codebase during development and at some point the software is made available to a wider community as a Beta release. However, with community software the development team *is* the community so the codebase is usually made available to everyone during development.
However, not everyone in the community will want to work with software that is under development which means it is often necessary to maintain two branches of the code base: a stable branch which will only be patched when absolutely necessary and a development branch which will change more frequently. The UA SDK is now at the stage where there are two branches: the v1.0 packages are the stable branch and the v1.1 packages are under development.
Application developers who are planning on releasing products in the next few months should be using the v1.0 branch since this software has been in use for months and had been tested by the early adaptors and by different vendors. Application developers who are looking at releasing products later next year should be using the v1.1 release since this will ensure that they get access to all of the latest features and bug fixes. As some point in time the v1.1 codebase will be frozen so vendors can spent time stress testing and a new development branch will be created. When the codebase is frozen that means that no API changes or internal architectural changes will be introduced.
What this all means is that the v1.1 codebase posted this week does not have a lot of changes compared to v1.0 but these changes do include internal architectural changes that were kept out of v1.0 and a number of APIs have been marked as Obsolete because they have been replaced by a newer APIs. The features that will be part of the v1.1 release such as HA support, COM wrappers/proxies, et. al. will be added to the v1.1 codebase as they are completed.
As a final note: users of v1.1 should look at the build status before upgrading. A Build marked as 'Testing' is a build that has not been independently verified and could have issues. These builds are provided so people who reported bugs can verify that they were fixed. A Build marked as 'Stable' has gone through some independent testing and developers working with the v1.1 codebase should upgrade as soon as possible.