JIRA OnDemand CSV Import – Rough Edges

We just went through a surprising amount of effort to import projects in to Atlassian’s JIRA OnDemand, using their CSV importer. Here are some tricky bits we hit along the way; this is accurate as of November 2012. If you are reading this well after that date, hopefully JIRA’s newer JSON-based import option is supported and documented by now.

  1. JIRA CSV import can import attachments. It fetches them from URLs. Beware though that it won’t accept alternate ports. http://host/whatever is OK, http://host:nnn/whatever is broken. Moreover, is broken with a completely incorrect (403) error. (Undocumented.)
  2. CSV import can import comments. The format is documented on their site, and arcane, and permanently leaves a trail of extra data in the comment text(!). But it works.
  3. CSV import will import events as of date-time as imported. Only one date format is supported for comments; though it date format can be changed for  issue-level fields. The date format does not include a time zone. By trial and error we learned that the datetime is interpreted as the time zone which the JIRA server (at the OS level) is set to. (Undocumented.)
  4. JIRA OnDemand servers are set to the US Central time zone, or at least they pretend to be for us. YMMV. (Undocumented.)
  5. JIRA CSV import will automatically create-as-needed users if they are mentioned at the issue level (as an issue creator etc.)… but will only generate an error about missing users at the comment level.
  6. CSV import can import parent-child relationships, but not other kinds of relationships.
  7. The JIRA REST API is tempting – but it can’t assign correct historical date-times to anything, so it’s generally not useful for importing data.

In spite of those rough edges, we were able to get the job done, and are happy with JIRA.

 

Our Interns Built a Mobile Web App, Here is Their Story

This summer, we hired three interns to build a mobile web application and learn a bunch in the process. Here is their story, in video form:

video
play-sharp-fill

If you don’t have Flash installed (and thus don’t see the video above), you can try this direct link to the video. It plays well on most platforms (including an iPad).

It is also available on YouTube.

Yet Another Github Issues to JIRA Export Tool

A few weeks ago I posted about the various Github Issues export tools to prepare data for import to Atlassian JIRA. Unsurprisingly, none of them worked sufficiently well for my needs. I thought about adapting and improving one of them; I know Ruby, Python, and (barely) enough Perl. But none was all that appealing; some used an obsolete Github API version, one didn’t handle comments at all (!), and so on.

Instead I wrote a new tool, in Clojure. The following tools and documentation moved things along quickly:

Download the GHI -> JIRA CSV tool now:

https://github.com/kylecordes/ghijira

A very irritating caveat is that as of June 2012, the resulting file works great with the current downloadable JIRA, but fails with JIRA OnDemand (the SaaS version). JIRA support confirmed the import problem is due to a slightly older version of the import tool used in the SaaS offering – by the time you read this, it might already have been upgraded and fixed.

Update: To help those who aren’t here for the Clojure but just to solve their GHI->JIRA problem, I added more instructions to the README file (see github project link above) explaining how to use the software.

Further Update: Several readers have contacted me with minor question, and excited success reports, in moving large project from Github Issues to JIRA with this code. Here are recent examples:

The ghijira script does exactly what it says it will do, and it does it well! I was looking for a (simple) way to move our over 600 issues from Github issue tracker to our Jira (OnDemand) project for better tracking, and this did the trick. Simple to set up your system to run the necessary bits (thanks to the easy to follow readme), and very thorough in moving comments, links, references, etc. I’ll be using this for several projects, and I could not be more thankful to Kyle for creating and sharing it. Kyle was tremendously helpful to boot!
-TJ Baker

The CTO of a 200-person engineering group in Chicago, IL writes, “I used your application to migrate thousands of issues from GitHub into a JIRA project.  There were a few tweaks, but it works far better than anything else I’ve found.”

Github Issues to JIRA – What Works?

Today I looked for a way to import issues (including history) from Github Issues to JIRA. I was delighted and disappointed to find at least four different implementations of a Github Issues to JIRA-CSV exporter – all honestly described as rough one-off efforts.

It seems likely that I’ll adapt (add minor improvements to) one of the above to yield yet another solution for this, and perhaps publish it here, so there will then be at least four choices for the next person to find.

A lot of small problems end up in this condition: many semi-solutions, no clarity on which to use. Is that what meet users’ needs best? Certainly not. Perhaps Atlassian will step in eventually with a broad, well-tested set of issue importers for JIRA. JIRA appears to be a market leader, this is an opportunity to step up and earn that role.

UPDATE: I made a new export tool, available now.

Oasis Digital 2012 Summer Internships – Mobile, Tablet, Web

Application Deadline: May 15, 2012.

Applications are now closed.

It’s almost time for our Summer 2012 internship program. You might want to look back to our 2011 program, or our inspiration, the Fog Creek program. Interns at Oasis Digital work on serious, complex projects, though the work is generally exploratory in nature (rather than part of our enterprise development work for customers). Interns write software, test software, write about software, etc. The purpose of the work is to educate and enlighten the interns, and also create something useful to Oasis Digital and its customers.

Who?

We plan to hire two or three student interns.

Unlike some programs, ours is for high school students, or recent graduates about to enter college.

How Long?

The work will last about 10 weeks, from the first week of June through early August. Interns should expect to work around 30 hrs per week, though only a small portion of that will be on-site in-person. Other than a few fixed meetings per week, your schedule will be flexible.

We can adjust the dates if needed, to accomodate college start dates, family vacations, and so on.

Where?

Interns will meet at the Oasis Digital office two or three times each week. Our office is in Chesterfield, MO. Therefore, interns must live in the St. Louis metro area and have transportation available.

At these office sessions, we’ll all work together, and interns will learn from various Oasis Digital developers. Outside of that, interns will work alone, and meet to work together, for a total of around 30 hours per week.

Does it Pay?

Yes, these are paid internships. Each intern will earn about $2200 for a full summer of work.

In additional, our meetings will be scheduled to include a company-paid lunch a couple of times each week.

What Will We Build?

The project for this summer will be a workflow management system, with web and mobile-app (smartphone, tablet) interfaces.

Interns (with help from Oasis Digital staff) will create an end-to-end system:

  1. Database Schema
  2. Server / backend services
  3. Web client application
  4. Mobile (native or HTML5) app
  5. Tablet (native or HTML5) app
  6. Document and deploy all of the above

The schedule goal is to develop an extremely simple version of the above, and “ship” it in working condition, halfway through the summer. Then with the rest of the summer, add interesting features, platforms, polish, etc. GPS, mapping, photo support, multitouch clever interfaces, anything is possible.

More importantly than what we will build, is what everyone will learn. Expect to learn more in this summer than you would in many classes.

What Language?

The exact toolset will be worked out by the interns, and may include:

  • JavaScript
  • Node
  • JQuery and similar libraries
  • Java
  • Clojure
  • Git / Github
  • HTML (including HTML5)
  • PostgreSQL or MySQL
  • Linux, Windows, OSX
  • iOS, Android
  • Various other open source tools and libraries

Requirements

  • Excellent command of written and spoken English
  • Currently enrolled in high school, or just graduated.
  • Top grades or a track record of success
  • Permanent legal right to work in the United States
  • Great (for your age) computer programming skills
  • Live in the St. Louis MO metro area
  • A computer available to work on, when you’re not at the office

How Do I Apply?

Apply via our job application page, not by email or phone. This is the same mechanism we use for hiring non-interns, so it is perhaps overly complex; we expect intern applicants to have a short, one-page resume listing interests and personal projects, not professional work.

Please apply by May 15, 2012.