I have been looking for some SCM alternatives based on git and Stash+Jira look really good.
Currently we have our SCM system set up with ClearQuest and ClearCase UCM with some extra configuration on CQ side:
- We create Version records in ClearQuest and assign Issues/Features to them. We have quite a few custom fields in our CQ records.
- Developers work on CQ Issues/Features, change code, and when done, we can create a version in ClearCase from ClearQuest (via hooks).
We like how we can plan which issues go with each future version of our software, and the fact that all commited code is referenced to a CQ issue.
From what I've seen it looks like Jira + Stash could cover most of what we do, but I'm not 100% sure. The Jira-Stash integration seems pretty loose. Do you know if Jira-Stash can be configured to work like we do now with CQ-CC? (mainly managing Stash versions from Jira, and making sure that all commits refer to a Jira issue?)
Currently creating tags in Stash from JIRA isn't currently supported. It wouldn't be hard to write a plugin in JIRA that creates those tags automatically, which we could certainly help you with.
In general we normally do things the other way around. In the Stash team at least we take a release branch and then update JIRA accordingly. Git is the source of truth, not JIRA. For example it might be possible to think that a JIRA ticket is fixed on a given version, but in reality it might not have been. In that case you have no option but to backport a commit and create another minor release/tag. Does that make sense?
I hope I can mention that we're currently working on enhancing the integration of Stash and JIRA so that some of these details are more visible/accessible in JIRA.
This may also be of interest:
Finaly, I can't help but mention I've had a fairly 'complicated' history with Clearcase...
Do you mean you change the state of Jira versions (do they have states?) from Stash?
In our case, CQ version record has states, and once a version is changed to SQA, we create a baseline in CC automatically. I wanted to know if we could do something similar in Jira-Stash so as to not change a lot our development cycles. However I'm also open to other ways of working.
I love to hear that you're working on further Jira-Stash integration, I will continue to monitor those tools since we plan on moving away from our CQ-CC setup soon.
In Git you don't need to create baselines, every commit is atomic across multiple files - you get the baselines for free! If you want to apply a tag to a given commit, you can choose to do so whenever you like.
During my time with Clearcase I never used CQ, so apologies if we're not talking about the same thing. But I imagine that linking of versions in JIRA and Stash is not enforced (at the moment).
What I would suggest as a different workflow in Git is something like this. You would apply a tag to a given commit, and push to Stash. You then have some mechanism* for finding all the issues mentioned in that 'release', apply the version in JIRA to any issue mentioned, and then marking them as 'Released'.
In Git it's trivial to find the issue keys mentioned by running the following command:
git log --oneline old_version..new_version
(That will return in less than a second - Git is blindingly fast)
In JIRA you can only (currently) query information that's stored in JIRA - so if you schedule certain issues for the next release, you can ask which ones haven't been closed yet. But whether they are actually on the main branch in Git/Stash is something that JIRA doesn't know. That's definitely something we want to be able to support, but we're not there yet.
You can read more about JIRA versions here:
As someone who has used (suffered?) Clearcase in the past, I can't recommend Git highly enough. Regardless of which hosting solution you pick, once you switch you won't want to go back. ;-)
I hope some of that was helpful.
* This is the part where it would be fairly easy to create a custom Stash plugin that creates/updates the version of any JIRA issues mentioned when you push a new tag.
I've been using git locally for a few months with CC-CQ in the backend since that is our official SCM platform. I will definitely check out your git-cc bridge. It could come in handy for migrating our history...
We'd need a self hosted solution for security reasons, so I'd rather use Stash than set up a bare-bones git server myself. However I'll need to check our current CQ-CC workflow and see what steps can be mapped to Stash-Jira, what steps we can do without and what would be missing.
I'd love to see more Jira-Stash integration in the future.
Thank you for all the great info!
All versions should be managed in JIRA. Each project in JIRA can be created with multiple versions. JIRA can also create any number of custom fields that you want. To make sure that a commit has the JIRA issue key, there is a hook in the marketplace I think.
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot