def next_version
      parse unless parsed?
      (major, minor, patch) = current_version.split(".").collect { |n| n.to_i }
      if !changes[:major].empty?
        major += 1
        patch = minor = 0
      elsif !changes[:minor].empty?
        minor += 1
        patch = 0
      else
        patch += 1
      end
      "%d.%d.%d" % [ major, minor, patch ]
    end
def next_version
      parse unless parsed?
      (major, minor, patch) = current_version.split(".").collect { |n| n.to_i }
      if !changes[:major].empty?
        major += 1
        patch = minor = 0
      elsif !changes[:minor].empty?
        minor += 1
        patch = 0
      else
        patch += 1
      end
      "%d.%d.%d" % [ major, minor, patch ]
    end
The next (upcoming release) version number, based on what
 pending changes currently exist. Major changes will increment
 the major number, else minor changes will increment the minor
 number, else the patch number is incremented.