Archive for the ‘Tips’ Category

YouTrack Screen-Cast—A Practical Hands-On Guide On Issue Juggling

Thursday, February 9th, 2012

Building on the knowledge gained in the first part of the Tracking YouTrack series, in this episode Vaclav Pech and me will go through the many aspects of issue management in YouTrack. We’ll learn how to create new issues quickly, attach files and screen-shots, organize issues, tag them, assign them and a lot more. Watch this screen-cast to get a good grip on YouTrack.

YouTrack Screen-Cast—A Practical Hands-On Guide On Searches

Thursday, February 9th, 2012

Watch this screen-cast and join Vaclav Pech on his journey to learn YouTrack search queries. The idea came from a short phone call, where I’ve tried to provide Vaclav with some YouTrack’s tips and tricks, so this screen-cast is made in a form of dialog. We’ll try different ways to use YouTrack effectively, build queries, save search results, filter displayed issues and tag them. Enjoy our show!



Note: You may also like the second part covering issue creation and management.

Handling Email Feedback: YouTrack to the Rescue

Thursday, October 13th, 2011

Hello everyone! Thanks to our users, we receive lots of feedback every day. You post questions in our forum, create issues in our bug tracker, and, of course, you send us emails.
If you get feedback emails on a regularly basis, like we do, and your support team or a member of your development team processes them, you’ve probably faced the tiny inconvenience of keeping track of the status of an email and the person responsible for it.

Faced with this challenge, we wanted to find the best way to track all of these things, so no precious question would be left unanswered.

In JetBrains, we practice the ‘eat-your-own-dogfood’ principle. So we decided to manage feedback using our own YouTrack - and we’re very happy with the results. We’d like to share our experience with you, so you can apply it to your projects as well.

Generally, there are two things you need to do in YouTrack in order to automate the process: a) set up integration with mailbox and b) create custom workflow.

Without digging into the details of the settings, the tracking of emailed feedback now looks as follows:

  1. YouTrack periodically checks the mailbox youtrack-feedback@jetbrains.com for new emails.
  2. Once one or more new emails are discovered, YouTrack fetches them and creates new issues in a dedicated project, one issue per unique email. New issues are created with the following parameters:
    • Issue summary and issue description generated from email’s subject and email’s body, respectively.
    • All the email attachments are attached to the new issue.
    • Issue Reporter is set to email author.
    • Issue is unassigned and its state is ‘Unanswered’.
  3. Our team receives notifications when an issue is created: a notification is sent to the project lead, while other team members are notified via ‘Unanswered feedback’ shared saved search.
  4. When a team member adds a reply to the user’s question as a comment to the issue, the original email sender receives an email notification containing that reply. So most of the time, we keep the conversation within an issue, via comments.

So far this process is implemented using Mailbox integration only. But to make our life even easier, we’ve designed a workflow to manage the life-cycle of created feedback issues. This workflow contains four rules covering the following processes:

  • Notifying about unanswered feedback. We use the scheduled rule, using which YouTrack daily checks the feedback project for ‘Unanswered’ issues and notifies the team if any such issues are left.
  • Setting the state of issue to ‘Answered’ or ‘Unanswered’ according to the latest comment: if a comment is from an external user, the issue becomes ‘Unanswered’; if the comment’s author is a team member, the issue becomes ‘Answered’.
  • Setting assignee on team’s comment. A team member who is the author of the latest comment containing the answer automatically becomes the issue’s assignee. This way we know who ‘owns’ the conversation at the moment.
  • Resolving issues automatically if the issue is marked as ‘Spam’. Of course quite a bit of this ‘feedback’ is actually spam, but we deal with it just like this: when an issue’s type is changed to ‘Spam’, its state automatically becomes ‘Answered’.

Please refer to How To guide for the detailed steps of setting up Mailbox integration and creating Workflow rules. You can also download the described workflow and attach it to your project as is. Keep in mind that you can always customize the process according to your specific needs.
Download YouTrack 3.0.4 along with YouTrack Workflow Editor 3.0.4 if you haven’t yet.

Manage your feedback with pleasure and make your users happy!

JetBrains YouTrack Team

Generating Graphs for YouTrack with HTML 5 and jQuery

Tuesday, December 14th, 2010

A few days ago, a customer of ours asked me if it would be possible to visualize statistics in graphs in our Bug Tracker YouTrack. Answer is Yes. Since YouTrack offers a “ReSTful” API, you can obtain pretty much any kind of information you want from it and once you have this information, you can then display it however you wish, be it a table or a graph.

 

Let’s see how.

 

What we’ll be using…

One of the great benefits of jQuery is the rich ecosystem it offers. There’s a plug-in for pretty much everything you need, even for displaying graphs. In fact there are quite a few. We’ll be using jQuery Visualize. We’ll also be using jQuery (I’m using 1.4.4 but should work with older version) and jQueryUI, which is needed by jQuery Visualize. Finally we’ll also need jQuery Templates (I’ll explain why later on).

Don’t worry about downloading each individual file. Everything you’ll need is included in the demo code attached to this post.

Getting the information from YouTrack

For this demo, what we want to do is create a chart containing Issue counts for different projects. In particular, we are interested in Open, Fixed and Duplicate issues for ReSharper, dotCover and dotTrace:

image

In order to get this information from YouTrack we have to make a request to count the number of issues based on filters, i.e  ReSharper + Open, ReSharper + Fixed, etc.*. The URL for this would be:

http://youtrack.host.com/rest/issue/count?filter=project:ReSharper%20state:Fixed

which is nothing other than a URL encoded version of a search expression we can enter directly into YouTrack’s web interface,but to the rest API. We therefore need to send requests from our web page to YouTrack to obtain this information. The way we can do this is with Ajax and JSONP which YouTrack supports. Using jQuery.ajax, our code would look like this:

image

Problem is, this wouldn’t work, or at least, not always. When requesting a count of issues by YouTrack, the response is not immediate. YouTrack will free the request and will spin off to calculate the count. Once it’s complete it will then store the information in the cache. Next time a request is made, the value from the cache will be returned. What this means to us is that if we fire off a request, if it’s a cache miss, then we will get back a –1 instead of the actual count. We would therefore need to send a new request, until we get a value greater or equal to 0. This is not complicated to do with JavaScript and in particular with jQuery. It merely consists of polling for a result. But like all things jQuery, before you re-invent the wheel, check to see if there’s already a wheel and it turns to your liking, something which in this case does. This alternative to $.ajax allows us to poll servers and only process the result if a condition is met. As such, our previous code would now look like this:

 image

(the polling interval can be set for the calls. Here we’re using the default value).

In terms of requesting information from YouTrack, that’s all there is to it. What we need to do now is repeat the process for each project and status type and store the value.

[* Currently YouTrack does not support grouping so multiple requests will have to be made. This feature is planned however]

Representing the information as a table using jQuery Templates

We want to do two things with the results, represent them as an HTML table and display them as a graph. The data retrieved from the server is given to us as an array of objects (something we did in the code ourselves), where each object has a one property indicating the Project and three additional properties with the values of each status:

image 

We would now need to iterate through this array and generate a table from it. Instead of doing this in an ugly way by mixing tags with data, we can take advantage of jQuery templates (if you are not familiar with templates, you can think of them as a view engine for jQuery). What we do is define a template and then make a call to a function that replaces placeholders with our data. If the data we provide this function is an array, it will repeat it for each entry.

image

The code first creates the template for the markup we want to generate, which are rows of a table. It then calls the template function to create a compiled version of the template which will then be passed in to the tmpl function along with the data (the series variable). The call to appendTo is a jQuery method which adds the contents of the object it’s called on to the item passed in to the selector (in this case #rows). 

In the body section of our page, we can then define the rest of the table, which includes the header and the tag for the table body:

image

Creating the Graph

So far we have retrieved the information from YouTrack and created an HTML table to display it. Our main objective however was to also display this information graphically. That in fact is the easiest part. One reason we are using jQuery Visualize is because it can easily convert a table into a graph (it supports different types of graphs, including lines, pies, etc.). All we need to do is call visualize on a table.

image

That’s all there is to it. Once we put all the pieces together, we will end up with the following page:

image

This chart works in all browsers I’ve tested (IE 9, Opera, Firefox and Chrome)

Summary

The complete code for requesting information from YouTrack and generating the Graphs is available on my GitHub Blog repository. Once you examine it, you’ll see that it’s very few lines of code, thanks to the rich ecosystem around jQuery. I’m sure it can even be improved further, since I am by far a jQuery expert and can also be made a bit more generic to allow for different statistics to be obtained without change to the source.

I’m currently working on YouTrackSharp which is a wrapper for YouTrack requests in C#. So if you’re interested in doing the same thing from C#, you will soon be able to do.

As always, if you have any questions please leave a comment.

Enjoy!

JIRA 4 Integration Plug-in

Thursday, January 28th, 2010

We’ve announced that YouTrack Daring EAP builds support integration with JIRA 4. This is true but in order to enable integration, you’ll need to download JIRA 4 integration plug-in.

This is a “version 1″ JIRA plugin, meaning that you should deploy it into WEB-INF\lib directory of your JIRA installation. (See Managing JIRA plugins for details.)

Also, make sure to enable JIRA RPC plugin to invoke JIRA operations remotely.

If you’re not sure what else you should do to enable JIRA integration on YouTrack side, see relevant items in YouTrack FAQ.

Administrator’s Guide

Thursday, October 8th, 2009

We have covered YouTrack usage extensively, and we’re still trying to ensure that end users understand what they’re doing when they work with the application.

However, the administrative part has been somewhat overlooked - up until today.

Please welcome YouTrack Administrator’s Guide that currently provides details on the following:

If there’s something you need to know about YouTrack administration that is not covered in the Administrator’s Guide, please let us know!

Select All. We Mean, All

Wednesday, September 30th, 2009

If you have executed a search query but the list of matching issues doesn’t fit in a single page, don’t worry, you can select all of them in just one click.

What exactly do you have to do? Say you’ve searched for all your unresolved issues:

for me #unresolved

Found 1000 issues. Now, press Ctrl+A, or click “Select All” on the toolbar to select all issues on the current page. You will notice a message right above your issues: “Click to select all 1000 issues”.

Click the link specifying the number of issues to select. Now, you can modify all found issues with the Command window - for example, type command “won’t fix”, and have a couple of weeks vacation followed by a couple of months at an employment agency!

Be careful though, the changes you make can’t be reverted!

This feature is available in YouTrack EAP in build 67 or later!

Log In with OpenID

Thursday, September 24th, 2009

We have revamped YouTrack login form to make it prettier and handier.

You can now log into YouTrack with an OpenID from one of five providers:

Ever attempted logging in from your smartphone? This is much easier now. Actually, it’s easier from anywhere: a single button click, and your Gmail (or Yahoo or whatever) credentials let you get in!

The new login form is available in YouTrack EAP starting from build 67.

Enjoy!

FAQ and Twitter

Tuesday, September 22nd, 2009

Some important news today.

First, you can now follow us on twitter for quick development updates.

Second, YouTrack FAQ has been published in response to feedback that we have received this month. Particularly, it explains:

That’s not all FAQ is about: see if there are answers to questions you’ve been afraid to ask. If not, ask on, and we’ll answer!

Easy issues linking

Thursday, July 30th, 2009

Consider you have to create a link from one issue to another. You select “Link->Relates to” from menu, or type “relates to” and get the following dialog:

At this moment it appears that you do not remember target issue number. What to do? Use text search right here:

Navigate to desired issue and press Tab:

Bingo.