Archive for the ‘Other’ Category

Happy Halloween!

Tuesday, November 1st, 2011

Thank you Curtis!

Streamlining Issue Management with GitHub and YouTrack

Monday, October 24th, 2011

The Typical Developer Workflow

image

* Thanks to @gregyoung for enriching me with whatthecommit.com

In general, as developers we hate uninteresting tasks such as managing issues, so the less time and effort we spend in tracking bugs and features the better. The worse case scenario is the one outlined in the previous workflow, i.e. work on a bug, comment the fix in source control and then separately manage the issue in an issue tracker. Ideally, we’d like to only have to indicate what we’ve worked on and how it’s related to a check-in once! And fortunately with YouTrack, we can. However, YouTrack goes one step further. It actually allows us to control issues from our source control. Let’s see how this plays out when it comes to using GitHub.

In essence we have two options when it comes to integration GitHub:

  • Directly via GitHub Service Hooks.
  • Use TeamCity as the gateway, which in itself offers other advantages (opening it up to other VCS’s too).

We’ll cover each of these in detail.

YouTrack and GitHub Service Hooks

Earlier this year, GitHub provided official support for YouTrack hooks, allowing for tight integration between the two systems. This makes it extremely easy to set up YouTrack for issue management.

Assuming we have a project already set up on YouTrack and GitHub:

1.  Click on the project in GitHub and select Admin

2. Select the Service Hooks from the left-hand side menu

image

3. At the very bottom of the list of Service Hooks, select YouTrack

image

4. Enter the following information in the form provided

image

A few things to note here:

  • Base Url is the url of your YouTrack server, which is independent of the actual project.
  • Committers is the group in YouTrack that has permission to commit to source code for the particular.
  • Username should be a user on YouTrack with Server Admin rights [In an upcoming release this will change to only require Project Admin rights].

5. Switching over to the YouTrack side, the only thing required is the to create the Committers group and add the correct users to it. This step isn’t required but it’s good practice to limit the users that can update an issue to those associated with the project.

6. A last important step (which is performed once only)  is to make sure the REST interface is activated on YouTrack (via the Administration Settings)

image

Putting it to work – Hello YouTrack Commands

Now that we have the two systems linked up, how do we actually get this to work? If you’re not familiar with YouTrack, you might not know about an amazing feature it has called commands.

When most people look at YouTrack, all the see is just another web application with links to click on. However, the true power of YouTrack is in it’s support for commands, which is basically a way of sending it different pieces of text that it understands. This is normally done using the Invoke Command window (Alt+Ctrl+J…yes YouTrack is VERY keyboard friendly):

image

We start typing text and YouTrack offers us completion and tries to figure out what we’re trying to do. It’s smart enough that it doesn’t need us to spell things out, i.e. instead of having to type “state: fixed assignee: hhariri”, we can just type “fixed hhariri” and it figures out the rest:

image

It even remembers recent commands we’ve applied to offer the same combinations to us on the next input.

Now if we take this concept of commands and combine that with the usually useless commit messages we can actually come up with something useful! We can use the commit messages to send YouTrack commands (in fact, with YouTrackSharp I’ve started implementing PowerShell commandlets to allow console support for YouTrack too). As such, from our console our Git GUI we can do the following:

image

What we’ve done here is provide a command as commit message. We’ve identified the issue we’re going to apply the command to (issue Id prefixed with #) and followed it by the command Fixed.

Once we do this and push it to GitHub, the Service Hooks in GitHub will now supply this information to YouTrack, which in turn parses the command and applies it to the issue:

image

Notice a few things here:

  • The issue’s history has been updated with the date/time it was resolved along with a comment saying it was emitted via commit by hhariri.
  • The issue has been actually marked as Fixed.
  • The Username is clickable. It has correctly identified the username that checked in and mapped that to the YouTrack user. How does it do know that? Simple. It’s based on the email address. That’s why it’s important to have the correct email address associated with both account.

Multiple Issues

YouTrack also supports multiple issues being updated via the commit message. In order to do this via the commit message, each issue should be on it’s own line (i.e. when using the console, don’t provide the –m option with the commit and have Git prompt you with an editor to input comments).

Also it is important to note that the commit messages are not limited to just the “Fixed” command, but other commands can also be added such as tagging an issue, etc. (comments currently is not supported).

Integrating GitHub (or any VCS) with YouTrack via TeamCity

The second option for integration between YouTrack and GitHub is using TeamCity as the gateway. The advantage to this mechanism (apart from using TeamCity!) is that it now opens the door to more VCS options, including Subersion, Perforce, Git, Hg and all VCS’s that TeamCity supports.

The steps to integrate YouTrack and TeamCity are pretty straightforward:

1. Click on YouTrack Administration and select TeamCity Integration

image

2. Select to Enable TeamCity Integration and click on the Add TeamCity Server link

image

Enter the information as described in the dialog box and click Save.

3. Once the server is set up, we now need to define the mappings between TeamCity and YouTrack projects. For that, we click on the define mapping link:

image

We need to define pretty much all the values in the dialog box (which are self-descriptive).

In addition to the minimum required settings, we can also define restrictions on which groups have access to viewing issues via the Permissions tab, as well define a default command to be set on issues affected by failed builds:

image

4. In order to get the User Mapping, YouTrack like before uses the Email address. As such, we need to make sure that our VCS is configured to map to email. This is done on the TeamCity side under My Settings and Tools which is located under the Username menu [Note we have now switched to TeamCity]:

image

We edit the corresponding settings and set the Git roots to use email:

image

5. That’s all that is needed in order to get VCS commands working via TeamCity acting as gateway. This will now provide us information and output like the following in YouTrack when sending a fixed command via a commit message:

image

With this, a new Tab appears on YouTrack named TeamCity which contains information about the commit being made along with a link to the username.

We could in essence stop right here. The next step however is to go full force and get some of the added benefits of integrating TeamCity and YouTrack, this time from TeamCity’s side.

6. Under TeamCity Adminsitration click on Server Configuration and then on the Issue Tracker tab

image

7. We now need to create a new connection by clicking on Create New Connection, and entering the following information:

image

Once we test the connection we can click Create and we’re done. From this point on, we can click on Changes and have drill-down information on issues, link directly to them, etc.

Summary

As we can see, there are two ways to integrate YouTrack and TeamCity. The former requires a little bit less of a setup but is restricted to GitHub (currently). The latter gives us the full benefit of having a tight integration between TeamCity and YouTrack and opens up the door to using any VCS that TeamCity supports.

Most importantly however, the purpose of all this is to streamline the process, making issue management simple, non-intrusive and easy to work with.

[Note: If you’re an OSS project lead, note that TeamCity and YouTrack Integration are already setup on Codebetter.com. Ping me if you need help setting up your project details to take advantage of what’s been explained here].

The JetBrains Magical Mouseless Continuous England User Group Tour

Tuesday, October 18th, 2011

After months of preparations and in collaboration with  NxtGen User Groups, VBug and Anteo, we are happy to announce the upcoming JetBrains User group Tour of England: 5 Days, 5 Cities, finishing it off in London in style!

The Tour Dates

  • Monday 14th Nov - Essex
  • Tuesday 15th Nov - Cambridge
  • Wednesday 16th Nov - Manchester
  • Thursday 17th Nov - Coventry
  • Friday 18th Nov - London

(For more information and Registration, see below)

The Agenda for Essex, Cambridge, Manchester and Coventry

Mouseless Driven Development

Do you know ReSharper, are using it or have used it in the past? Do you think you are getting the full potential out of it? Even developers that have been using it for several years often only scratch the surface. Come and learn all the tips and tricks of ReSharper and see how to use it to it’s full potential to truly create a mouse less driven development environment.

The Agenda for London

The London event will be slightly longer, but will be compensated with Food and Beer!

Mouseless Driven Development

Do you know ReSharper, are using it or have used it in the past? Do you think you are getting the full potential out of it? Even developers that have been using it for several years often only scratch the surface. Come and learn all the tips and tricks of ReSharper and see how to use it to it’s full potential to truly create a mouse less driven development environment.

Continous Delivery

Paul Stack joins us to talk about Continuous Delivery and how to use TeamCity for this purpose:

Continuous Delivery is all about allow features to be delivered in a more timely and reliable fashion. In this session, Paul will introduce the concepts of continuous delivery, through continuous integration;  automation of builds, test and deployment process, version control techniques for Continuous Delivery, Pitfalls, Objections and Obstacles.

Sebastian Lambla will show us to to twist Visual Studio and ReSharper to provide dynamic plug-in functionality with OpenWrap.

Registration

If you are going to attend the London meeting, please use our EventBrite page to sign up. If you are going to attend one of the other meetings across England, please use the corresponding link below to register directly with the user group.

(In London we will be providing Food and Drinks, so please make sure that you sign up ahead of time. Places unfortunately are limited to approximately 70 people!)

Scotland

Unfortunately, despite our initial intentions of also including Scotland in the tour, we were not able to due to scheduling. However, we hopefully do plan to repeat the tour with Scottish User Groups in the New Year so please stay tuned!

Thank you!

A big Thank You to the Coordinators of NxtGen User Group, VBug and Anteo for their efforts in organizing this tour and collaborating with us in all possible ways.

Free upgrade to ReSharper 6 starts today + decompiler gets a name

Tuesday, April 26th, 2011

Some great news today in the .NET tools department!

First of all, any ReSharper 5 new or upgrade purchases made since today, April 26, 2011, qualify for a free upgrade to ReSharper 6!.

That means, if you or your employer are using ReSharper 4.x or earlier, or if you’re just considering buying ReSharper, now is the perfect time since your new license will work both in the current ReSharper 5 and the upcoming ReSharper 6.

Important update! If you have purchased ReSharper 5 within a month back from the date of free upgrade announcement, please contact JetBrains sales for a significant upgrade discount.

Second, we have picked a name for our new .NET decompiler from the list of awesome suggestions that we received on facebook. The tool is now called dotPeek! Thanks everyone for your suggestions, and we have four lucky winners.

Name for .NET decompiler anyone?

Wednesday, April 20th, 2011

We’ve got a cool brainstorming session underway! You can take part, too: just go to JetBrains Facebook page and suggest a name for the upcoming free .NET decompiler from JetBrains.

Free personal licenses to any 5 JetBrains tools and a cool T-shirt will be yours if we choose the name that you suggested.

Please only leave your suggestions on Facebook.

Use Alt+Enter in Microsoft Word for spell checking quick-fixes

Tuesday, April 19th, 2011

Sometimes we receive feedback on the most popular ReSharper keyboard shortcut, Alt+Enter, not being available outside of Visual Studio. This is a bit confusing for ReSharper users working in Microsoft Word where spell-checking comes with a curly underline for grammar and spelling errors in document — similar to how ReSharper highlights errors and warnings in Visual Studio. Proofing suggestions in Word are by default applied with a right mouse click or an unfamiliar shortcut, which kind of slows down document editing for ReSharper (or IntelliJ IDEA) users.

Here are some easy steps to make the renowned Alt+Enter shortcut to apply “quick-fixes” as well as navigate between errors in Microsoft Word documents. The following guide is based on Microsoft Word 2010; however, the steps are very similar in previous versions (for example, Word 2007 or 2003).

  1. Open the Word Options dialog box by choosing File | Options (Word 2007: Office button | Word Options.)
  2. Click Customize Ribbon (Word 2007: Customize.)
  3. Click Customize in the Keyboard shortcuts area (in Word 2003, the button can be reached by selecting Tools | Customize | Commands.)
    File | Options | Customize Ribbon dialog, Customize button
  4. In All Commands category, find a command called NextMisspelling. It is mapped to Alt+F7 by default.
  5. In the Press new shortcut key field, press Alt+Enter (it will be displayed as Alt+Return in the dialog):
    The Next Misspelling command, which needs to be remapped
  6. Click Assign, and you’re done!

Now gently close all dialogs and enjoy Alt+Enter displaying the spelling correction menu in Microsoft Word! Note that you can even press it anywhere in a Word document (not necessarily directly on a curly underline) to navigate to the next spelling or grammar error, and open the correction menu upon it:

Tales from QA: The “Re-Design” of the Dialog Box

Tuesday, February 1st, 2011

0_53699_50f6409b_orig

by @Asia_Rudenko

Submit a Screencast to JetBrains.TV and Win a Free Pass to DevCon London 2010!

Thursday, September 2nd, 2010

Some great things are happening here at JetBrains.

First of all, we have just revealed the very first Beta of JetBrains TV, the definitive resource for videos on JetBrains products and best development practices. Hadi’s got to say a little bit more about it.

Second, we thought if we now have a resource for videos, why not use it straight away to leverage the power of community?

We have 10 passes to the upcoming DevCon London conference that will be held in London, UK, on Septeber 27-29 featuring Scott Allen, Ted Neward, Neal Ford, Greg Young, Ian Cooper, Dino Esposito, Hadi Hariri, Carl Franklin, Richard Campbell, and other renowned speakers. Each of the 2-day passes that we’re giving away is worth £549. You can get one of them pretty easily.

Update! The contest is extended until September 16!

All you need to do for a chance to get a free DevCon London pass is create and share a short screencast about any feature (or features) in any of JetBrains .NET tools: ReSharper, dotTrace, or dotCover. Make sure to submit your screencast to JetBrains TV no later than on September 16. You can highlight your favorite feature, come up with a set of tips and tricks, or make a short task-specific tutorial: be creative in choosing the content of your screencast! If you had previously created a screencast at another video hosting site, you’re free to submit it to JetBrains TV and you’ll be eligible for the contest - just provide a link to the original video location and help us make sure that you’re the author of the original video.

We’ll pick 10 winners on September 17 and provide them with a promotion code that will enable them to visit DevCon London absolutely free of charge!

With this contest, we’re mostly targeting UK developers but if you live elsewhere and you’re willing to land in London on September 28 and 29, you’re very much welcome to take part!

Contest Rules:

  • You publish your screencast (or several screencasts, if you will) at JetBrains TV no later than on September 16. Please use your JetBrains Account to log in there.
  • We will choose best submitted screencasts via internal vote.
  • We will announce 10 winners on September 17 and provide them with free DevCon London passes.

Requirements:

  • JetBrains TV accepts videos in the following file formats: mp4, mpeg, avi, mpg, wmv, flv, and mov. Make sure to export your video to one of these formats.
  • Use 4:3 aspect ratio for better publishing quality.
  • Publish your screencast to a channel that corresponds to the product it’s about: ReSharper, dotCover, or dotTrace.
  • Make sure to mark your screencast with tag DevCon 2010 Screencast Contest.

Recommendations:

  • Please showcase current versions of JetBrains products. By current versions, we mean ReSharper 5.0 or later, dotTrace 4 Performance Beta 3 or later, and dotCover 1.0 Beta or RC.
  • Silent screencasts are fine but we’d prefer voiceover.
  • Recommended resolutions: 1024*768 or 800*600.
  • Try to limit screencast duration to 5 minutes.

You are free to create your screencasts using any screencasting tool (Camtasia, Captivate - hey, there are lots of them) and make them available via JetBrains TV.

By the way, we’re also raffling 10 passes to JAX London that will be held in the same venue in the same time with DevCon. If you want to get there too, you can submit a screencast about IntelliJ IDEA (or another IntelliJ-based IDE) as well. See details on the IntelliJ IDEA Blog.

Looking forward to your contributions!

The JetBrains Team

dotTrace 4 Pricing

Friday, July 2nd, 2010

Good news today: we have finalized pricing options for both new dotTrace 4.0 licenses and upgrades.

Before you familiarize yourself with the pricing scheme, here’s a quick reminder of the new dotTrace product and editioning scheme:

  • dotTrace stops being an all-in-one profiler and splits into two products: dotTrace Performance and dotTrace Memory.
  • dotTrace 4.0 Performance is scheduled for release in August 2010, in two editions: Standard and Professional. Here’s how the two editions compare. In short, compared to the Standard edition, dotTrace 4.0 Professional adds remote profiling, support for Silverlight 4 and .NET Compact Framework 3.5.
  • dotTrace 4.0 Memory will not be released simultaneously with the new performance profiler but rather in a few months after it. The current release schedule for dotTrace 4.0 Memory is Fall this year.
  • Because of the asynchronous release dates of the two 4.0 profilers, for the time being, we’ll make available dotTrace 3.5 Memory. As opposed to dotTrace 4.0 Performance which is a totally redesigned product, dotTrace 3.5 Memory is the memory profiling part cut from dotTrace 3.1 and reinforced with support for CLR 4 applications.

After due clarification of terms, here’s a couple of summary points regarding upgrades:

  1. We’re ready to announce prices for upgrading from your existing dotTrace licenses to dotTrace 4 Performance and dotTrace 3.5 Memory. Regarding upgrades to dotTrace 4.0 Memory, we’ll update you on that this Fall, as soon as we approach the dotTrace 4.0 Memory release.
  2. You’ll be able to upgrade your existing dotTrace license in any way you want:
    • To dotTrace 4.0 Performance.
    • To dotTrace 4.0 Memory.
    • To the bundle of these products.
  3. If you have purchased your dotTrace license on or after December 17, 2008, you’ll get a free upgrade to the bundle of dotTrace 4.0 Performance Professional + dotTrace 3.5 Memory Standard. This applies to any kind of license: personal, per-developer, or floating.
  4. If you have purchased any dotTrace license before December 17, 2008, you’ll get dotTrace 3.5 Memory Standard for free (this free upgrade opportunity, once again, is valid for all kinds of licenses), and an option to upgrade to dotTrace 4.0 Performance at a price according to the following upgrade table. All upgrade rates are roughly 60% of corresponding new license rates.



Table 1. dotTrace pricing: upgrade licenses

Upgrade to: dotTrace 3.5 Memory dotTrace 4.0 Performance dotTrace bundle
Standard Standard Professional 4.0 Performance Pro
+ 3.5 Memory Standard
Any license purchased on or after December 17, 2008 N/A N/A N/A FREE
Personal license FREE $119 $179 $179
Per-developer commercial license FREE $199 $299 $299
Floating commercial license FREE $1199 $1799 $1799


In case you don’t use dotTrace, here are the prices for new dotTrace licenses.


Table 2. dotTrace pricing: new licenses

dotTrace 3.5 Memory dotTrace 4.0 Performance dotTrace bundle
Standard Standard Professional 4.0 Performance Pro
+ 3.5 Memory Standard
Personal license $149 $199 $299 $399
Per-developer commercial license $299 $399 $599 $749
Floating commercial license $999 $1999 $2999 $3499

A Quick Update on Issues and Workarounds

Tuesday, June 29th, 2010

Users keep coming with questions whether a particular issue that they encounter in Visual Studio is related to ReSharper. Well, some of them are, some of them aren’t. Either way, we try our best to provide info on workarounds for common issues, both our own and external, in this blog post. Check it out for latest updates on GetTempFileName()-related exceptions in certain versions of Windows, and “insufficient memory” messages caused by simple cut-and-paste operations in Visual Studio — both issues fortunately not in any way related to ReSharper.

As to ReSharper’s own issues, we keep fixing them in 5.1 Nightly Builds, hoping to provide the official 5.1 bug fix update really soon. If you happen to find stop-shipping bugs in the nightly builds, hurry up to report them!