Forgive me if this has been solved in its entirety, although I''ve only seen bits and pieces of this solved in various ways. I''m hoping a few of you have figured out an elegant solution to this problem. Over time I''ve noticed that it would be immensely helpful if we were able to easily correlate which git commit version was running in all of our environments of our application. Capistrano is kind and stores this deployment version value in REVISION, and the deployment time in the timestamp of the deployment directory. Seth Ladd wrote about a couple of helper methods he wrote to acquire these values at http://blog.semergence.com/2008/11/03/displaying-deployment-date-and-time-and-git-revision-number-in-rails-views I''d like to take this up a notch and mark known good commits with releases (i.e. 1.0, 1.1, 1.2, 1.2.1, etc). At the footer of all pages, it would be excellent to be able to see something like "PROD - 1.0 (3425)" (ENVIRONMENT - VERSION (BUILD)) where BUILD corresponds to a git commit hash (somehow). I''d like to be able to catalog which commit hash maps to which version (and do this semi-automatically, through a rake/cap task, aka: cap deploy:version:increment only when a major/ minor release occurs). Then, I''d also like to extract all dependency version numbers, and combine all of this into exception reporting. So when an exception is thrown (gracefully to the end user with an error page), email is generated with: environment (production, staging, development, etc) particular app server hostname/ip/port app version (1.0, 1.0.1, 1.2, 1.3, etc) build version (3425) git commit hash dependent gems and plugins versions of each gem and plugin REQUIRED for the release versions of each gem and plugin installed Is anyone aware of a single tool that has combined all of this together? There are certainly some solutions, such as exception_notifier, hoptoad, etc, which do the exception notifications, but do not handle "release management" or release correlation. If not, I think this might be worthy of a plugin or gem that I''d consider building. -Kevin --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
With a day to let this sit, I thought more about it (and did more searches), and did not find anything compartmentalized to handle this. I''ll probably move forward with making this into a gem. Is anyone interested? Are there particular features you''d like to see this handle? -Kevin On Apr 7, 2009, at 12:50 PM, Kevin Elliott wrote:> > Forgive me if this has been solved in its entirety, although I''ve only > seen bits and pieces of this solved in various ways. I''m hoping a few > of you have figured out an elegant solution to this problem. > > Over time I''ve noticed that it would be immensely helpful if we were > able to easily correlate which git commit version was running in all > of our environments of our application. Capistrano is kind and stores > this deployment version value in REVISION, and the deployment time in > the timestamp of the deployment directory. > > Seth Ladd wrote about a couple of helper methods he wrote to acquire > these values at http://blog.semergence.com/2008/11/03/displaying-deployment-date-and-time-and-git-revision-number-in-rails-views > > I''d like to take this up a notch and mark known good commits with > releases (i.e. 1.0, 1.1, 1.2, 1.2.1, etc). At the footer of all pages, > it would be excellent to be able to see something like "PROD - 1.0 > (3425)" (ENVIRONMENT - VERSION (BUILD)) where BUILD corresponds to a > git commit hash (somehow). I''d like to be able to catalog which commit > hash maps to which version (and do this semi-automatically, through a > rake/cap task, aka: cap deploy:version:increment only when a major/ > minor release occurs). > > Then, I''d also like to extract all dependency version numbers, and > combine all of this into exception reporting. So when an exception is > thrown (gracefully to the end user with an error page), email is > generated with: > > environment (production, staging, development, etc) > particular app server hostname/ip/port > app version (1.0, 1.0.1, 1.2, 1.3, etc) > build version (3425) > git commit hash > dependent gems and plugins > versions of each gem and plugin REQUIRED for the release > versions of each gem and plugin installed > > Is anyone aware of a single tool that has combined all of this > together? There are certainly some solutions, such as > exception_notifier, hoptoad, etc, which do the exception > notifications, but do not handle "release management" or release > correlation. > > If not, I think this might be worthy of a plugin or gem that I''d > consider building. > > -Kevin > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Peter Fitzgibbons
2009-Sep-30 16:23 UTC
Re: Application Release Tracking & Version Numbers
Hey Kevin, I''m interested to hear how you''ve done in this endeavour. I am about to embark on the same task and I''d like to reuse your code if you''re willing. Thanks, Peter Fitzgibbons (847) 687-7646 Email: peter.fitzgibbons-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org IM GTalk: peter.fitzgibbons IM AOL: peter.fitzgibbons-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org On Wed, Apr 8, 2009 at 12:21 PM, Kevin Elliott <kevin-bjsViUlG2TsAvxtiuMwx3w@public.gmane.org> wrote:> > With a day to let this sit, I thought more about it (and did more > searches), and did not find anything compartmentalized to handle this. > I''ll probably move forward with making this into a gem. Is anyone > interested? Are there particular features you''d like to see this handle? > > -Kevin > > On Apr 7, 2009, at 12:50 PM, Kevin Elliott wrote: > > > > > Forgive me if this has been solved in its entirety, although I''ve only > > seen bits and pieces of this solved in various ways. I''m hoping a few > > of you have figured out an elegant solution to this problem. > > > > Over time I''ve noticed that it would be immensely helpful if we were > > able to easily correlate which git commit version was running in all > > of our environments of our application. Capistrano is kind and stores > > this deployment version value in REVISION, and the deployment time in > > the timestamp of the deployment directory. > > > > Seth Ladd wrote about a couple of helper methods he wrote to acquire > > these values at > http://blog.semergence.com/2008/11/03/displaying-deployment-date-and-time-and-git-revision-number-in-rails-views > > > > I''d like to take this up a notch and mark known good commits with > > releases (i.e. 1.0, 1.1, 1.2, 1.2.1, etc). At the footer of all pages, > > it would be excellent to be able to see something like "PROD - 1.0 > > (3425)" (ENVIRONMENT - VERSION (BUILD)) where BUILD corresponds to a > > git commit hash (somehow). I''d like to be able to catalog which commit > > hash maps to which version (and do this semi-automatically, through a > > rake/cap task, aka: cap deploy:version:increment only when a major/ > > minor release occurs). > > > > Then, I''d also like to extract all dependency version numbers, and > > combine all of this into exception reporting. So when an exception is > > thrown (gracefully to the end user with an error page), email is > > generated with: > > > > environment (production, staging, development, etc) > > particular app server hostname/ip/port > > app version (1.0, 1.0.1, 1.2, 1.3, etc) > > build version (3425) > > git commit hash > > dependent gems and plugins > > versions of each gem and plugin REQUIRED for the release > > versions of each gem and plugin installed > > > > Is anyone aware of a single tool that has combined all of this > > together? There are certainly some solutions, such as > > exception_notifier, hoptoad, etc, which do the exception > > notifications, but do not handle "release management" or release > > correlation. > > > > If not, I think this might be worthy of a plugin or gem that I''d > > consider building. > > > > -Kevin > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---