diff --git a/README.md b/README.md index 02710cb..7653278 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ This documentation includes other articles of interest, include: 4. [GridFS in Ruby](http://api.mongodb.org/ruby/current/file.GridFS.html). 5. [Frequently Asked Questions](http://api.mongodb.org/ruby/current/file.FAQ.html). 6. [History](http://api.mongodb.org/ruby/current/file.HISTORY.html). +6. [Release plan](http://api.mongodb.org/ruby/current/file.RELEASES.html). 7. [Credits](http://api.mongodb.org/ruby/current/file.CREDITS.html). Here's a quick code sample. Again, see the [MongoDB Ruby Tutorial](http://api.mongodb.org/ruby/current/file.TUTORIAL.html) diff --git a/Rakefile b/Rakefile index 7e93cb2..0c555c4 100644 --- a/Rakefile +++ b/Rakefile @@ -146,7 +146,7 @@ task :ydoc do require File.join(File.dirname(__FILE__), 'lib', 'mongo') out = File.join('ydoc', Mongo::VERSION) FileUtils.rm_rf('ydoc') - system "yardoc lib/**/*.rb lib/mongo/**/*.rb lib/bson/**/*.rb -e yard/yard_ext.rb -p yard/templates -o #{out} --title MongoRuby-#{Mongo::VERSION} --files docs/TUTORIAL.md,docs/GridFS.md,docs/FAQ.md,docs/REPLICA_SETS.md,docs/WRITE_CONCERN.md,docs/HISTORY.md,docs/CREDITS.md,docs/1.0_UPGRADE.md" + system "yardoc lib/**/*.rb lib/mongo/**/*.rb lib/bson/**/*.rb -e yard/yard_ext.rb -p yard/templates -o #{out} --title MongoRuby-#{Mongo::VERSION} --files docs/TUTORIAL.md,docs/GridFS.md,docs/FAQ.md,docs/REPLICA_SETS.md,docs/WRITE_CONCERN.md,docs/HISTORY.md,docs/CREDITS.md,docs/1.0_UPGRADE.md,docs/RELEASES.md" end namespace :bamboo do diff --git a/docs/RELEASES.md b/docs/RELEASES.md new file mode 100644 index 0000000..9c2b6cf --- /dev/null +++ b/docs/RELEASES.md @@ -0,0 +1,33 @@ +# MongoDB Ruby Driver Release Plan + +This is a description of a formalized release plan that will take effect +with version 1.3.0. + +## Semantic versioning + +The most significant difference is that releases will now adhere to the conventions of +[semantic versioning](http://semver.org). In particular, we will strictly abide by the +following release rules: + +1. Patch versions of the driver (Z in x.y.Z) will be released only when backward-compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior. + +2. Minor versions (Y in x.Y.z) will be released if new, backward-compatible functionality is introduced to the public API. + +3. Major versions (X in X.y.z) will be incremented if any backward-incompatibl changes are introduced to the public API. + +This policy will clearly indicate to users when an upgrade may affect their code. As a side effect, version numbers will climb more quickly than before. + + +## Release checklist + +Before each relese to Rubygems.org, the following steps will be taken: + +1. All driver tests will be run on Linux, OS X, and Windows via continuous integration system. + +2. HISTORY file will document all significant commits. + +3. Version number will be incremented per the semantic version spec described above. + +4. Appropriate branches and tags will be created in Git repository, as necessary. + +5. Docs will be updated to the latest version of the driver and posted [online](http://api.mongodb.org/ruby/current/index.html).