Skip to content
  • Brad King's avatar
    Change version scheme to use only two components for feature levels · 7cbab178
    Brad King authored
    Historically CMake used three version components for the feature level.
    We released new features while incrementing only the third version
    component.  Since commit v2.8.2~105^2~4 (New version scheme to support
    branchy workflow, 2010-04-23) we used the fourth version component for
    bug-fix releases and the development date:
    
     <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release
     <major>.<minor>.<patch>.<date>[-<id>]     = Development
    
    This solidified use of three components for the feature level, and was
    necessary to continue releasing 2.x versions because:
    
    * Some existing projects performed floating-point comparisons of
      ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers
      so ``x`` could never be higher than 9.
    
    * Version 2.9.<date> was used briefly in post-2.8.0 development in
      CVS prior to the transition to Git, so using it in releases may
      have caused confusion.
    
    Now that we are moving to 3.x versions, these two restrictions go away.
    Therefore we now change to use only two components for the feature
    level and use the scheme:
    
     <major>.<minor>.<patch>[-rc<n>] = Release
     <major>.<minor>.<date>[-<id>]   = Development
    7cbab178