Delivering software projects is tricky business at the best of times, particularly when it comes to deploying changes. When planning to release, Ops teams need to know what changes are coming so they can mitigate the risk of the deployment and understand what they’ll be responsible for supporting in production.

Jira provides a convenient lens for anticipating changes to an application. But correlating a new version of the application (i.e., a new build) with the FixVersion on its associated Jira issues can be difficult because these two meanings of the word “version” are not tied together in any programatic or enforceable way. An issue marked with FixVersion “1.3” may have been implemented in an application version called “1.3-RC1”, “1.3.0” or even back in “1.2.9”.

In the last two years the Bamboo team has had a lot of conversations with customers big and small about their deployment problems and they have always circled back to one issue: visibility. That is to say, there is a lack of visibility across Development, QA and Ops teams about what code has been written, how it was tested, and whether specific changes have made it into production.

If you use home-grown scripts to deploy your software, or even one of the CI servers currently available, making upcoming changes highly visible is difficult. That’s why in Bamboo 5 we harnessing application versions to connect issues, their commits, and the test and deploy history of the resulting build.

Wait: Jira already has version tracking

Why do we also need versions in Bamboo, you ask? Fair question. Well, version tracking in Jira is all about tracking changes as you work towards a goal or milestone–it doesn’t actually represent the software version that you’re deploying. For example, it make take a few builds and deploys to QA until you’re satisfied that the software is ready to ship and you can mark the version as released in Jira.

By contrast, Bamboo’s versioning provides a unique identifier for the build that’s being deployed: the version name you choose for it (“1.3-RC1”, for example), plus a roll-up of all the new commits and associated Jira issues since the last version. This makes it dead simple to get a complete picture of what happened between any two versions.

VersionDetails

VersionReleaseNotes

Dude, where’s my code?

Versions in Bamboo are tracked against your environments. Environments are another new concept in Bamboo 5, used to represent a server or group of servers that you want to deploy to. Typically these are given names to that reflect the environments in your IT infrastructure like QA, Staging, and Production.

By looking at the environments for our deployment project, we can see what versions are currently running, giving a quick overview of what’s been deployed and where. Only a single version can be active on an environment at a time, and any previously-deployed versions can be looked up through the deployment project’s version history.

VersionHistory-1

Through the eyes of Jira

DeploymentsInJiraAs useful as all this information is, you won’t need this level of detail all the time. Age-old questions like “Where can I verify this bug fix?” and “Has this user story gone out to production yet?” are what most of the team will be asking most often. So Bamboo 5 brings that information to where you already are: Jira.

Inside each Jira issue that is associated with a version of your application, you’ll see a list of your environments and whether the code for that issue has been deployed to each one. This also works with the new issue detail view on search results just released in Jira 6.

Connecting Jira issues with versions in Bamboo is simple: just include the issue key in the commit message when submitting code for the issue (something most developers do instinctively anyway). Bamboo will see that and add it to the list of issues worked on since the last version.

Versions are just one aspect of the continuous delivery goodness coming up in Bamboo 5. We’re pretty excited about it all, and we don’t mind saying so! We’ve even made pre-release builds of Bamboo 5 available for you to try out. Install it, kick the tires, and use the in-app feedback button to let us know how we can make it even better.

UPDATE: Bamboo 5 has landed!

Take the tour