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

Greg Olsen picture Greg Olsen · Jan 31, 2012 · Viewed 9.5k times · Source

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?

Answer

dooleyo picture dooleyo · Mar 28, 2013

My strategy is to let your VCS tags do it for you (git shown here).

Add this to your application.rb:

# Only attempt update on local machine
if Rails.env.development?
  # Update version file from latest git tag
  File.open('config/version', 'w') do |file|
    file.write `git describe --tags --always` # or equivalent
  end
end

config.version = File.read('config/version')

You can then access the version anywhere in your app with Rails.configuration.version