|
@@ -72,3 +72,27 @@ Then build the Gem:
|
|
This gem includes the upb parsing and serialization library as a single-file
|
|
This gem includes the upb parsing and serialization library as a single-file
|
|
amalgamation. It is up-to-date with upb git commit
|
|
amalgamation. It is up-to-date with upb git commit
|
|
`535bc2fe2f2b467f59347ffc9449e11e47791257`.
|
|
`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.
|