Any best practices for integrated usage of svn, Jira and Bamboo? [closed]
Asked Answered
D

1

6

I currently have focused setting up a software configuration management process using svn, Jira and Bamboo. Unfortunately, I cannot find any defined or standard practices using the mentioned tools. I exactly looking for a set of best practices including:

  1. The best way of branching
  2. The best patterns of keeping development lines
  3. The best ways of using Jira issues with svn commits
  4. ...

A good configuration management practice is the one Microsoft has proposed for his TFS solution. Any known set of best practices for the mentioned tools?

Distichous answered 18/8, 2011 at 12:4 Comment(0)
N
5

I recommend you read through the on line Subversion book which includes lots of stuff about the best practices in using Subversion.

I also recommend the book Practical Perforce. Perforce is another version control system, but it is very similar to Subversion, and the book has some excellent ideas on how branching and coding should be done. It is all very applicable to Subversion.

As for Jira, the best advice is to keep it simple: Really, really simple. Jira works best for developers and not for an overall corporate organization. Workflows should be kept simple.

There's no good book on Jira, but if you've never used Jira, please understand that certain fields have very special meanings, and you should respect their meaning:

  • Resolution is used to mark an issue as open or closed (and not the state). If an issue has a resolution, it's closed. Period. This is used for many of the built in reports, thus should be respected.
  • The heart of each Jira project is the version number -- another very special concept. Defects are tracked by the version they're reported in and the version they're fixed in.
  • The status field cannot be changed except by transitioning to another state. Thus, I recommend you have a backflow that can reset an issue to a previous state. Someone is going to transition the wrong issue, and you'll have to fix it.
  • Use a continuous integration system like Jenkins or Bamboo. Jenkins and Bamboo integrates with Jira quite nicely. In fact, I'll argue it's a much more important integration than the direct Subversion to Jira integration. Almost no one ever bothered looking up the source code directly from Jira, but the QA people loved the fact they could look at the Jira issue and see which build it was fixed in.
  • If you're going to be looking at Atlassian products, consider Fisheye while you're at it. It provides a way of browsing code via the web, and showing diffs. It integrates nicely with Bamboo and Jenkins. This is where developers usually look to see code diffs, etc. A good Fisheye substitute is Sventon. Jira integrates with Sventon, and so does Jenkins. I don't know if Bamboo does.
  • Join the Subversion User mailing list. The discussions there can help. Plus, the people on that list tend to be very helpful.
Nessim answered 18/8, 2011 at 16:44 Comment(5)
I've read the svn book. It mainly discusses the way of WORKING with svn, not the way of USING it. In addition, I did not found useful practices on that book. I should take a look at the book you introduced, i.e. Practical Perforce, that may help. BTW, thanks for your point and comments.Distichous
Today, I found that Attlasisn company, the one who has released Jira has launched another product, called Jira studio. It is a complete hosted software development tool suite for the mentioned tools. I think by providing this product, I can use from their practices.Distichous
Jira Studio is $125 per month for just a five user license. Add more, and the costs go up. Plus, it still doesn't give you best practices, just tools that'll help. For SCM, I find the best practice is to do main development on the same branch (usually trunk) then branch to a release branch on code freeze, and release and tag off the release branch. Merge defects found in the release branch to trunk, rinse and repeat. I prefer Jenkins over Bamboo due to the plugins, and ease of interface. I can also release from Jenkins and mark my releases.Nessim
Thanks for your comments. You are right about the cost. But I want a tested robust environment. Talking to Atlasian guys, they have told me that can guide us by providing practices for us. An about Jenkins, can it be integrated with Jira? As an example, when you release a version, can it send the release number to jira?Distichous
Jenkins integrates with Jira about as well as Bamboo does. Comments that contain Jira issue IDs are linked to their associated issues, and when Jenkins does a build, it comments on any Jira issue involved with that build. What I do is when we are satisfied with a build, we can lock the build in Jenkins to prevent it from being deleted, and keep the built artifacts. I can then tag the release, and mark it in Jenkins. You need to create a "version" in Jira to match. It could be done automatically in Jenkins via the SOAP API.Nessim

© 2022 - 2024 — McMap. All rights reserved.