diff --git a/ruby/README.md b/ruby/README.md index 84f4a775d2..8331d28613 100644 --- a/ruby/README.md +++ b/ruby/README.md @@ -72,3 +72,27 @@ Then build the Gem: This gem includes the upb parsing and serialization library as a single-file amalgamation. It is up-to-date with upb git commit `535bc2fe2f2b467f59347ffc9449e11e47791257`. + +Version Number Scheme +--------------------- + +We are using a version number scheme that is a hybrid of Protocol Buffers' +overall version number and some Ruby-specific rules. Gem does not allow +re-uploads of a gem with the same version number, so we add a sequence number +("upload version") to the version. We also format alphabetical tags (alpha, +pre, ...) slightly differently, and we avoid hyphens. In more detail: + +* First, we determine the prefix: a Protocol Buffers version "3.0.0-alpha-2" + becomes "3.0.0.alpha.2". When we release 3.0.0, this prefix will be simply + "3.0.0". +* We then append the upload version: "3.0.0.alpha.2.0" or "3.0.0.0". If we need + to upload a new version of the gem to fix an issue, the version becomes + "3.0.0.alpha.2.1" or "3.0.0.1". +* If we are working on a prerelease version, we append a prerelease tag: + "3.0.0.alpha.3.0.pre". The prerelease tag comes at the end so that when + version numbers are sorted, any prerelease builds are ordered between the + prior version and current version. + +These rules are designed to work with the sorting rules for +[Gem::Version](http://ruby-doc.org/stdlib-2.0/libdoc/rubygems/rdoc/Gem/Version.html): +release numbers should sort in actual release order. diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 01d2763656..371009bb1a 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -7,7 +7,7 @@ end Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.0.0.alpha.3.pre" + s.version = "3.0.0.alpha.3.0.pre" s.licenses = ["BSD"] s.summary = "Protocol Buffers" s.description = "Protocol Buffers are Google's data interchange format."