class Mixlib::Versioning::Format::OpscodeSemVer
Defines the format of the semantic version scheme used for Opscode projects. They are SemVer-2.0.0-rc.1 compliant, but we further constrain the allowable strings for prerelease and build signifiers for our own internal standards.
SUPPORTED FORMATS
“‘text MAJOR.MINOR.PATCH MAJOR.MINOR.PATCH-alpha.INDEX MAJOR.MINOR.PATCH-beta.INDEX MAJOR.MINOR.PATCH-rc.INDEX MAJOR.MINOR.PATCH-alpha.INDEX+YYYYMMDDHHMMSS MAJOR.MINOR.PATCH-beta.INDEX+YYYYMMDDHHMMSS MAJOR.MINOR.PATCH-rc.INDEX+YYYYMMDDHHMMSS MAJOR.MINOR.PATCH-alpha.INDEX+YYYYMMDDHHMMSS.git.COMMITS_SINCE.SHA1 MAJOR.MINOR.PATCH-beta.INDEX+YYYYMMDDHHMMSS.git.COMMITS_SINCE.SHA1 MAJOR.MINOR.PATCH-rc.INDEX+YYYYMMDDHHMMSS.git.COMMITS_SINCE.SHA1 “`
EXAMPLES
“‘text 11.0.0 11.0.0-alpha.1 11.0.0-alpha1+20121218164140 11.0.0-alpha1+20121218164140.git.207.694b062 “`
@author Seth Chisamore (<schisamo@chef.io>) @author Christopher Maier (<cm@chef.io>)
Constants
- OPSCODE_BUILD_REGEX
The pattern is: ‘YYYYMMDDHHMMSS.git.COMMITS_SINCE.SHA1`
- OPSCODE_PRERELEASE_REGEX
Allows the following:
“‘text alpha, alpha.0, alpha.1, alpha.2, etc. beta, beta.0, beta.1, beta.2, etc. rc, rc.0, rc.1, rc.2, etc. “`
Public Instance Methods
@see SemVer#parse
# File lib/mixlib/versioning/format/opscode_semver.rb, line 71 def parse(version_string) super(version_string) raise Mixlib::Versioning::ParseError, "'#{@prerelease}' is not a valid Opscode pre-release signifier!" unless @prerelease.nil? || @prerelease.match(OPSCODE_PRERELEASE_REGEX) raise Mixlib::Versioning::ParseError, "'#{@build}' is not a valid Opscode build signifier!" unless @build.nil? || @build.match(OPSCODE_BUILD_REGEX) end