Skip to content

Commit ce43909

Browse files
authored
Merge pull request #95 from Sharpie/handle-semver-pre-release
Handle pre-release versions
2 parents 66e791e + ec80718 commit ce43909

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

lib/vanagon/project/dsl.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,16 @@ def release_from_git
194194
#
195195
def version_from_git
196196
git_version = Git.open(File.expand_path("..", @configdir)).describe('HEAD', tags: true, abbrev: 9)
197-
version(git_version.split('-').reject(&:empty?).join('.'))
197+
case git_version
198+
# Matches semver.org spec for a pre-release, with a well-known alpha,
199+
# beta, or RC identifier. Substitute "-" for "~" so that dpkg and
200+
# rpm treat this as a pre-release and will upgrade packages to the
201+
# final version.
202+
when /\A\d+\.\d+\.\d+-(?:alpha|beta|rc)\d+/
203+
version(git_version.sub('-', '~'))
204+
else
205+
version(git_version.split('-').reject(&:empty?).join('.'))
206+
end
198207
rescue Git::Error
199208
VanagonLogger.error "Directory '#{File.expand_path('..', @configdir)}' cannot be versioned by git. Maybe it hasn't been tagged yet?"
200209
end

0 commit comments

Comments
 (0)