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 /l
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
Personally I prefer adding a constant to the application class.
# file: config/initializers/version.rb
class SomeApp::Application
Version = '1.0.0'
end