Alex Rivera | Logout

Where do you store your Rails Application's version number?

Asked 2012-01-31T01:53:34.330
32

We use the wonderful semantic versioning paradigm when versioning our rails app. One question I had was where is it best to store this number? I've seen it stored in /lib, environment.rb, etc.

Just wondering what people thought as to best practices?

Edit
Report

1 Answer

14

My preference is to create a rake task that generates

# config/initializers/version.rb
VERSION = ["1", "0", "f3d9da7"]

FWIW, my rake task:

task :create_version do
  desc "create VERSION.  Use MAJOR_VERSION, MINOR_VERSION, BUILD_VERSION to override defaults"

  version_file = "#{Rails.root}/config/initializers/version.rb"
  major = ENV["MAJOR_VERSION"] || 1
  minor = ENV["MINOR_VERSION"] || 0
  build = ENV["BUILD_VERSION"] || `git describe --always --tags`
  version_string = "VERSION = #{[major.to_s, minor.to_s, build.strip]}\n"
  File.open(version_file, "w") {|f| f.print(version_string)}
  $stderr.print(version_string)
end
answered 2012-08-02T23:12:04.903

Your Answer