How to Manage Releases using Git Tags and Semantic Versioning

Releasing code into a production environment is a process teams want to make sure is repeatable, easy to execute and even easier to track. If a release is not easily identifiable or annotated it is hard for teams to know exactly what changes were released, how major the changes were and who made those changes. Worse yet, if a release needs to be rolled back and is not properly documented a team needs to spend a lot of time figuring out how to revert the changes and get production back up and running.

Git tags allow you to mark specific commits in your repository as releases and using semantic versioning allows you to communicate if the changes were major, minor or simple patches.

In this session attendees will learn the structure of semantic versioning and how it communicates different levels of code changes in a repository; Such as the difference between creating v1.0.1, v1.1.0 and v2.0.0 of your codebase.

Using this understanding attendees will learn how they can mark git tags with semantic versions, examples of simple bash scripts to generate version releases and how to use other git commands to generate release notes.

By the end of this session attendees will be able to apply this knowledge to manage code releases in their git repositories.

Audience Level
11:00 - 11:45 AM
Conf Day
Massachusetts (Gaige 204)
Profile picture for user
VP of Technology

I have been working with Drupal since 2008. I have done everything from theming, module development, to full on project architecture. I am active in the Drupal community and I submit modules, patches, organize sprints, speak at conferences/camps and help run the Boston Drupal meetup. I am an "Acquia Grand Master" and in 2014 was named an Acquia MVP for the Drupal work I had done.

I am theĀ  Director of Web Development at MIT Sloan and leadĀ the development, maintenance and growth of the digital team and properties for the school. I am also the host of the podcast Developing Up (, where we talk about the non-technical side of being a developer (such as how to work on a team).

You can find me on at mikemiles86, Twitter at mikemiles86 and my personal blog