[Insight-developers] ITK_VERSION_API

Brad King brad . king at kitware . com
Fri, 19 Dec 2003 14:25:31 -0500 (EST)


Bill,

I was about to add this macro to itkVersion.h and realized that we
probably should not provide it.  Since ITK has releases, we should define
a simple policy:  "Use a release, or use the latest CVS version".

It is easy to detect the difference between the ITK release and current
CVS versions:

#if ITK_VERSION_MAJOR > 1 || ITK_VERSION_MINOR > 4
 // CVS version
#elif ITK_VERSION_MAJOR == 1 && ITK_VERSION_MINOR == 4
 // Release 1.4
#else
 // Earlier version
#endif

The ITK_VERSION_API would provide a higher resolution index to the changes
between releases, but one that is not really useful.  Changes made during
development in CVS should not be supported until they are included in a
release.

If a third-party program is compiled using today's CVS version of ITK but
it will not compile with 1.4, then it does not matter if that program is
broken by a change made to ITK tomorrow.  The third-party program should
be updated to account for the changes to ITK.  No compatiblity code needs
to be added to the third-party program because no version of ITK will ever
be released that looks like today's version.

Users should not be using the CVS development version.  If they choose to
do so, then they inherit the responsibility of fixing their code to keep
up with ITK changes.

VXL, on the other hand, does not have releases.  Therefore I will still
propose to them that a VXL_VERSION_API number be added.

-Brad