Release Task: customizable version numbers
------------------------------------------

                 Key: BUILDR-438
                 URL: https://issues.apache.org/jira/browse/BUILDR-438
             Project: Buildr
          Issue Type: New Feature
          Components: Core features
            Reporter: Alexis Midon
             Fix For: 1.4.1


Base on this conversation, http://markmail.org/thread/t7pd773y4m6ncfyd it seems 
that the way Buildr handles versions can be improved.

Here is what I suggest:

# default behavior
The default supported version scheme is the 3-digit number. Buildr releases 
VERSION_NUMBER minus -SNAPSHOT, and increments the last digit of that version 
to get the new version.
1.0.0 -> 1.0.1
If the VERSION_NUMBER does not match this pattern, then the release should fail.
We could relax this convention to check if the last char is a digit and if so 
increment it. 

# custom increment
If the default behavior does fit one's needs, the method Release.bump_version 
receives a block that lets the user implement his custom strategy. This will be 
consistent with Release#tag_name, and #commit_message.

A buildfile could look like this:
VERSION_NUMBER='1.0.0-rc1-SNAPSHOT'
Release.bump_version = lambda {  |version|  # the version number without the 
-SNAPSHOT suffix, i.e. 1.0.0-rc1 
    version[0..-2]+(version[-1].to_i+1).to_s   # returns 1.0.0-rc2 
} 

When the version template changes - let's say you're done with the release 
candidates - you will manually edit the buildfile and change the version number 
to 1.0.0-SNAPSHOT. Then commit the buildfile.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to