[Insight-developers] ITK version numbers

Bill Lorensen bill.lorensen at gmail.com
Tue Dec 20 10:10:41 EST 2011


Sorry I brought this up in the first case.

Apparently, what I thought was a useful and simple solution, has too
many counter examples and what-if's.

Let's just stick with the manual specification of version numbers.

Bill

On Tue, Dec 20, 2011 at 8:26 AM, Brad King <brad.king at kitware.com> wrote:
> On 12/19/2011 5:22 PM, Matt McCormick wrote:
>>
>>   . o 4.0.1
>>   . |
>>   | |
>>   o | 4.1.20111219
>>   | |<--- fix for nasty bug
>>   |/
>>   o 4.0.0
>>
>> Say developer Alice has a project that need the 'fix for nasty bug'
>> commit, and she specifies that the ITK version must be>=
>> 4.1.200111219.  Then Bob comes with 4.0.1, and he will get an
>> inaccurate version insufficiency message.
>
>
> I actually started to write a paragraph about that case but never
> had time to finish it before sending one of my previous messages
> in this thread.  Currently the scheme only works when the minimum
> version requirement by a project is due to a feature or other change
> that will not be backported to an older release and expected to work.
>
> Plain numerical version comparisons only ever work when written with
> respect to a single path of development because the numbers increase
> monotonically along that path.  If Alice had instead waited until
> Bob released 4.0.1 and specified that as the minimum required version
> then anyone with a 4.1.$date version between 4.0.0 and the date the
> fix was made in the "mainline" will have a version that passes the
> check but does not have the fix.  We cannot simultaneously solve both
> problems with a simple version number unless we avoid ever backporting
> changes and always do incremental releases off a single path of
> development.
>
> I'm sure this same discussion has been held in forums for many projects.
> The problem is not new with Git.  Even folks using SVN revision numbers
> would have the same problem.  The revision number doesn't tell you what
> branch is in use.  Use of dates with CVS has the same problems.
>
> Only a version comparison that actually uses the history graph can
> answer the question "Is the change introduced by $commit known to this
> version?".  Do we want the build to record every Git commit in history,
> and to distribute that with source tarballs too?  I don't think that is
> practical.  Besides, if we ever need to reconstruct the whole history
> graph in terms of a future Git hash algorithm (such as sha1 -> sha256)
> then all those hashes will change and existing comparisons won't work.
>
> -Brad K



-- 
Unpaid intern in BillsBasement at noware dot com


More information about the Insight-developers mailing list