I was keen to get my grubby mitts on the JIRA 4.0 beta to see what JQL (jira query language) was all about… this is my first test-drive, I haven't read much of the release notes or the bug reports, so I'm probably way off on some of this.
You can grab the download from here. One notable difference is a massively slower startup time for an out-of-the-box instance with no additional plugins – around 75-90 seconds versus 10 or 15 for previous versions. This seems to be down to the use of OSGi, which has been in Confluence for a long time. On the plus side one should be able to include required jars in plugin jars, and even have different plugins use different versions of third-party stuff. The slow startup time will really only be a problem in dev builds I suppose.
Like I say, the main deliverable in this release is JQL. JQL will speak to literally hundreds of issues on j.a.c and probably close out shedloads of votes. So, start by hitting the Find Issues link.
At my organisation a common question is how to search across different projects, for issues fixed in the "same" version. Now that can easily be done with JQL:
project in (JRA,CONF) and fixVersion = "3.14"
That's already a big win. Another common one is how to search for issues assigned to/reported by an arbitrary list of users (creating a group is an admin-only exercise).
As you type, the query icon gives you feedback on whether your query is valid or not – although on the downside it creates an http request even when you simply move the caret around.
If you click on a previous query from the history list at left, it duplicates it and brings it to the top of the list – this is confusing, it makes it that much harder to return to the query you were just editing, as now it's second in the list – maybe it should only create a history entry when you change it, or possibly when you execute it.
It would be nice if you could filter using non-issue attributes… eg to filter on projects I am the lead for you would do: "project.owner = echlinj", or "version.releasedate > today()".
There is now a project category function to allow filtering on categories, which finally makes categories more than simply cosmetic. I don't understand why this can't be reflected in the simple view though.
Speaking of the simple view – it would be nice if the query was displayed as a tree, with the user adding fields and ANDs/ORs. Once a field is added you specify any parameters using an input form which varies according to the field's type. When you have many custom fields the simple view is rather busy and hard to use.
It's a big win to be able to search now on "empty values", eg "description is empty". However it's a shame that you cannot switch to simple view when you have used "is empty" – it's something that many users need to do but not all will be comfortable hitting anything that says Advanced. Empty could be represented by a little checkbox next to the field or some magic word or something.
More complex queries with nested clauses seem to fox it a bit:
description is empty AND (project = "Project1" or project = "Project2" or (reporter is empty and assignee is empty)) ORDER BY priority ASC, key DESC
This failed for me previously but right now it's working. Anyroads, you can overcome this by removing one of the parenthetical clauses, saving the query, then using this query in another query:
description is empty and filter = "BasicQuery" ORDER BY priority ASC, key DESC
Also, it would be nice to have a function that checks project role membership, eg "reporter in RoleMembers ("MyProject", "Developers")"
All in all, a huge improvement, but would like to see better round-tripping between the two query UIs – anything but the simplest filter can't be represented in the super-simple view.
This is annoying. This keeps popping up, even when I hadn't actually entered any data on the page:
The dashboards have gone all netvibes and pageflakesy… you can drag and drop your portlets, and there are a number of different layouts instead of the current "one large" or "two equal columns" layouts.
The dragging and dropping can be difficult with many gadgets, as the browser scrolling can confound your efforts to drop it in the right place. Also moving a gadget from a wide to a narrow column is surprisingly difficult first thing in the morning. This is all good stuff, but not quite as slick as iGoogle right now.
On the system dashboard the styling is seriously ill (this is in Firefox, in IE it's much worse):
The portlet frame, eg "Assigned to me" doesn't display unless you mouse over it. I'm assume this is just a minor glitch that will be resolved when it's GA.
There are some minor bugs, eg dragging a gadget (read portlet) seems to lose its settings, if you haven't already switched dashboard panels and returned to the current one. Eg, select a filter for a pie chart, hit Save, then move the gadget to a different position. When the gadget lands it loses the project/filter setting.
One thing I couldn't work out was how to move a gadget from one dashboard to another.
Filter portlets and so on now have a refresh interval, so they can be updated without updating the whole page. But, the shortest interval is "every 15 mins", not enough if you are running a support desk.
All this Web 2.0 goodness is all very well, but Firefox 3.0.10 consumed vast amounts of memory just clicking through the different dashboards I was working. Suspect a memory leak or two in FF. Open two or three tabs with jira in and you start getting serious problems. Memory consumption is likely to be even worse with the browsers that run a separate process per tab (IE8, Chrome, future versions of FF).
You should be able to use gadgets from igoogle and other places, unfortunately i couldn't get that to work. All I wanted was the London weather and a big clock in on my jira dashboard. Of more use might be having your jira portlets in some other OpenSocial container such as Yahoo!, however I don't use any of these currently. Maybe I'm missing out.
Down the track I'll be interested to see what performance is like – with all this AJAXy stuff, less happens in the same transaction, so permissions checking is going to happen more often, and possibly be more of a problem.
Whilst the users are crying out for what JQL provides I won't be in any hurry to upgrade. I'm sure the new plugin system is going to break a large number of plugins, and for better or worse, we do use a large number of plugins. I've been bitten before upgrading too early, so I'll let other people find all the plugin problems, and upgrade when they roll out 4.0.1.